一、
接口 | 抽象类 |
接口里面所有的方法都是抽象的,只有方法声明, 没有方法体 |
抽象类里可以有非抽象方法,也可以有抽象方法 |
变量声明时默认用final修饰,即接口中默认都是全局常量 | final可有可无 |
实现接口使用关键字implements | 抽象类的实现使用关键字extends |
接口只能继承另外一个接口 | 抽象类可以继承另外一个java类,并且可以实现多个接口 |
一个java类可以实现多个接口 | 一个java类只能实现一个抽象类 |
public static final修饰成员常量 public abstract 修饰成员方法,抽象的接口里面写 不写这些关键字,它们都默认存在,编译好的.Class文件里面全部知道补齐 |
不写修饰符,编译好的.class文件里不会有这些修饰符: public static final 修饰成员常量 public abstract 修饰成员函数,抽象的 |
二、接口中只声明它有那些功能,声明它能做什么,就像草稿一样,先列出来要做些什么,但是具体的功能实现,具体怎么做,具体的细节,需要由实现它的类来完成。
三、抽象类和类相似,但是抽象类里面可以有抽象方法,普通类中不能用抽象方法。抽象类和接口也很像,但是抽象类里面可以有非抽象方法,但是接口中都是抽象方法。
四、抽象类里面的非抽象方法,在继承它的类里面可以重写这些方法。
五、抽象类是需要其它的类去继承它,所有继承它的类如果需要用到里面的方法,都需要实现这些抽象方法才能用,对于非抽象方法,也可以重写。