A:成员的区别
抽象类:
生成方法:包含用于实例化子类的生成方法。
成员变量:可以是变量或常量。
成员方法:可以是抽象的也可以是非抽象的。
接口:
构建方法:无构建方法
成员变量:仅限常数。 默认修饰符:公共静态文件
成员方法: jdk1.7只能是抽象的。 默认修饰符: public abstract (建议:始终由您自己手动提供默认修饰符) )。
jdk1.8可以写以default和static开头的具体方法
B:类和接口的关系区别
类和类:
要继承关系,只能单独继承。 可以进行多层继承。
类和接口:
关系的实现可以单独实现,也可以多实现。
类还可以在继承类的同时实现多个接口。
接口:
继承关系可以单独继承,也可以多继承。
C:体现的理念不同
抽象类中定义的都是继承体系中的共性内容。
接口是功能的集合,是系统性的额外功能,是暴露出的规则。
请分割
你选择使用接口和抽象类的依据是什么?
接口和抽象类的概念不同。 接口是对动作的抽象,抽象类是对根源的抽象。
抽象类指示此对象是什么。 界面指示可以对此对象做什么。 例如,男人、女人,这两个班(如果是班的话……),他们抽象的班就是人。 解释一下,他们都是人。
人能吃,狗也能吃。 可以将“吃”定义为一个界面,让这些类实现它。
因此,在高级语言中,一个类只能继承一个类(抽象类),但可以实现多个接口(吃饭接口、行走接口) (就像人类不是同时生物和非生物一样)。
csdj在关注事物本质时,使用抽象类; csdj在关注一个操作时,使用接口。
抽象类的功能必须远远超出接口,但定义抽象类的成本很高。 因为在高级语言中,(实际设计上也是)每个类只能继承一个类。 此类必须继承或创建所有子类的共性。 接口在功能上会弱很多,但只是一个动作的说明。 此外,可以在一个类中同时实现多个接口。 在设计阶段难度会下降。