抽象类和接口
1、抽象类和接口的区别
(1)成员的区别
成员变量:
抽象类:既可以定义常量也可以定义变量
接口:只能定义常量默认存在public static final
成员方法:
抽象类:既可以定义抽象方法啊也可以定义非抽象方法
接口:只能定义抽象方法(方法定义中默认存在public abstract修饰符)
构造方法:
抽象类:可以有构造方法(有参或无参),对数据进行初始化
接口:没有构造方法
(2)关系区别
类与类之间
不管类是抽象还是具体类,都可以继承(支持单继承)
类与接口
类与接口是实现关系(implements),一个类可以实现多个接口
接口与接口
他们之间是继承关系,可以是多继承
(3)设计理念区别
抽象类:在抽象类多态使用中存在继承关系
接口:体现一种事物的拓展功能,自身不具备