美文网首页程序员
关于接口和抽象类的简单理解

关于接口和抽象类的简单理解

作者: YangEvol | 来源:发表于2018-04-27 17:07 被阅读0次

    抽象类:

    抽象类体现了数据抽象的思想,是实现多态的一种机制。

    1.由abstract关键词修饰的类称之为抽象类。 

    2.抽象类中没有实现的方法称之为抽象方法,也需要加关键字abstract。 

    3.抽象类中也可以没有抽象方法。 

    4.抽象类中可以有已经实现的方法,可以定义成员变量。

    5.抽象类可以多层继承。

    接口:

    接口提供的只是一种形式,而没有具体的实现。同时实现该接口的实现类必须要实现该接口的所有方法,通过使用implements关键字实现。

    1.由interface关键词修饰的称之为接口; 

    2.接口中可以定义成员变量,但是这些成员变量默认都是public static final的常量。 

    3.接口中没有已经实现的方法,全部是抽象方法。 

    4.一个类实现某一接口,必须实现接口中定义的所有方法。 

    5.一个类可以实现多个接口。

    区别: 

    1.抽象层次不同。

        抽象类是对类抽象,而接口是对行为的抽象。抽象类是对整个类整体进行抽象,包括属性、行为,

        接口却是对类局部(行为)进行抽象。

    2.设计层次不同。

        抽象类是自下而上来设计的,要先知道子类才能抽象出父类,是自底向上抽象而来的。

        接口不需要知道子类的存在,只需要定义一个规则即可,是自顶向下设计出来的。

    3.实现不同。

    比如 鸟和飞机都有飞的行为

    用抽象类实现:

    父类:

    飞机:

    鸟:

    用接口实现:

    接口:

    飞机:

    鸟:

    鸟类有吃东西的方法。但用抽象类继承,飞机也要实现吃东西的方法,显然是不合理的,

    所以从这里可以看出来,抽象类是抽象的共有的属性或方法。而接口只是抽象了局部的一部分。

    抽象类+接口:

    鸟:

    接口:

    相关文章

      网友评论

        本文标题:关于接口和抽象类的简单理解

        本文链接:https://www.haomeiwen.com/subject/ugnplftx.html