抽象类/接口

来源:互联网 发布:航空数据查询接口 编辑:程序博客网 时间:2024/06/06 06:02

什么是抽象类?

抽象类(abstract class )是对不同事物的高度抽象,可以理解为是对类的抽象(而类又是对某一类事物的抽象)

在abstract class 中可以有自己的数据成员,可以有非abstract的成员方法。

抽象类abstract class 的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类

什么是接口?

接口(interface)是对不同功能的抽象,可以理解为是对某一堆特殊的、独立的功能集合的抽象

在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在 interface中一般不定义数据成员),所有的成员方法都是abstract的。

实现接口implementsinterface)的时候,如不能全部实现接口方法,那么该类也只能为抽象类。

区别和选择?

一个形象的比方:人(class)和猫(class)都是哺乳动物(abstract class),但人(class)有制造并使用工具(interface)的特点。

一个class只能extends一个abstract class,可以implements多个interface

抽象类和接口不能创建对象,但是可以创建引用,指向一个实现类的实例对象。这时候引用就是片面的体现
抽象类 + 接口 = 实现类
(abstract class)+(interface1)+(interface2)+(interface3) = (123 abstract class)
当 (interface1) obj = new (123 abstract class)时,说明我们只关注只需要(interface1)这个功能点。
当 (abstract class) obj = new (123 abstract class)时,说明我们只关注只需要(abstract class)这个属性。


原创粉丝点击