25. 请叙述接口与抽象类的区别

  1. 抽象类:抽象类是指这个对象是什么

  2. 接口:接口是指这个对象能做什么

    举例: 定义一个狗类(抽象类):哈士奇,金毛都属于狗类(实现类)狗:睡觉,拆家…可以定义一个接口,让实现类去实现接口

  3. 因此在Java语言中,一个类只能继承一个类(抽象类)(正如狗不可能同时是生物和非生物),但是接口可以多继承,一个类能够实现多个接口。

  4. 接口中的所有方法是抽象的(abstract修饰)而抽象类是声明方法而不去实现它的类。

  5. 接口可以多继承,抽象类单继承

  6. 接口定义方法,不能实现,而抽象类可以实现部分方法

  7. 接口中的基本数据类型为static,而抽象类不是。

注:
抽象类的功能远超过接口,但是,定义抽象类的代价比较高。因为高级语言来说(从实际设计出发也是),每个类只能继承一个类。在这个类中你必须继承或编写出其所有子类的所有共性。虽然接口在功能上会弱化许多,但是接口是针对一个动作的实现,而且一个类能够继承多个接口,在设计中难度会相对降低。

猜你喜欢

转载自blog.csdn.net/zhu_fangyuan/article/details/108704517