抽象类和接口区别
2017-07-31 14:31
155 查看
1 、本质不同: 抽象类是类而接口不是类。
2 、 定义的维度不同:抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
例如猫、狗可以抽象成一个动物类抽象类,具备叫的方法。鸟、飞机可以实现飞Fly接口,具备飞的行为,这里我们总不能将鸟、飞机共用一个父类吧。
3、 设计方式不同:抽象类,我们要先知道子类才能抽象出父类。而接口则不同,它根本就不需要知道子类的存在,只需要定义一个规则即可,
4、接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的。抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法。
4000
2 、 定义的维度不同:抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,但是接口却是对类局部(行为)进行抽象。
例如猫、狗可以抽象成一个动物类抽象类,具备叫的方法。鸟、飞机可以实现飞Fly接口,具备飞的行为,这里我们总不能将鸟、飞机共用一个父类吧。
3、 设计方式不同:抽象类,我们要先知道子类才能抽象出父类。而接口则不同,它根本就不需要知道子类的存在,只需要定义一个规则即可,
4、接口比抽象类更加抽象,因为抽象类中可以定义构造器,可以有抽象方法和具体方法,而接口中不能定义构造器而且其中的方法全部都是抽象方法。抽象类中的成员可以是private、默认、protected、public的,而接口中的成员全都是public的。抽象类中可以定义成员变量,而接口中定义的成员变量实际上都是常量。有抽象方法的类必须被声明为抽象类,而抽象类未必要有抽象方法。
4000
相关文章推荐
- 抽象类和接口的区别
- Java 抽象类和接口的区别
- PHP高级——抽象类与接口的区别
- Java中抽象类和接口的区别
- 抽象类与接口的区别
- 抽象类和接口的区别
- 接口和抽象类的区别
- php中抽象类与接口的区别
- 详细解析Java中抽象类和接口的区别
- 抽象类和接口的区别
- 详细解析Java中抽象类和接口的区别
- 抽象类和接口的区别
- 【Java进阶】Java中抽象类和接口区别
- 详细解析Java中抽象类和接口的区别(转)
- 抽象类和接口的区别及使用场景
- 抽象类和接口的区别
- JAVA中接口和抽象类的区别
- 面试题之——抽象类(abstract class)与接口(interface)的区别
- C++中的抽象类以及接口的区别联系
- .Net中抽象类和接口的区别