接口
接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型。



接口可以继承多个接口
接口B

不能改变接口中定义的常量值

接口H

接口A 继承 接口B和接口H;接口不能实现接口

类可以同时实现多个接口
类C
可以实现多个接口

抽象类D
抽象类中抽象方法的访问权限可以是public、protectedl;接口只能是public
抽象类中可以有非抽象方法;接口中的方法都是抽象方法
抽象类中可以定义普通成员变量;接口中不能定义普通成员变量
抽象类和接口都能定义静态成员变量,抽象类访问权限可以是任意的;但是接口只能是 public static final即常量
抽象类中可以有构造方法;接口中不能有构造方法
一个类只能实现一个抽象类;但一个类可以实现多个接口,接口可以继承多个接口

类F
一个类只能继承一个类,java继承多个类时编译时就不通过

为什么java支持 一个类实现多个接口;但是只能继承一个类
从上诉例子中可以看出,如果子类F可以同时继承抽象类D和类C,如果类D和类C中存在相同(同名同参)的方法,即非抽象方法(都有自己的方法体);那么子类F就不知道选哪一个父类的方法进行重写了。
博客介绍了Java中接口和抽象类的特性。接口中抽象方法默认是public abstract类型,可继承多个接口,不能改变常量值,方法都是抽象的,不能定义普通成员变量和构造方法。抽象类抽象方法权限多样,可有非抽象方法和普通成员变量。还解释了为何一个类能实现多个接口却只能继承一个类。

被折叠的 条评论
为什么被折叠?



