接口与抽象类问题

来源:10-5 Java 中的接口

xiaoxiao77

2016-01-15 16:22

有了抽象类,为什么还要接口?两个具体区别
写回答 关注

2回答

  • 米老头0
    2016-01-15 16:33:31

    Java中类不允许多继承,接口可以实现多继承

  • 声声慢_1
    2016-01-15 16:31:30

    1、抽象类里面可以有非抽象方法,但接口里只能有抽象方法 

    声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。

    不能创建 abstract 类的实例,然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。

    不能有抽像构造函数或抽像静态方法。abstract 类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。


    2、接口(interface)是抽像类的变体。

    在接口中,所有方法都是抽像的。

    多继承性可通过实现这样的接口而获得。

    接口中的所有方法都是抽像的,没有一个有程序体。

    接口只可以定义 static final 成员变量。

    接口的实现与抽象类相似,当类实现接口时,它需要实现(即将程序体给予)所有这种接口的方法。


    声声慢_1 回复声声慢_1

    你发现所有会飞的动物都要实现这个接口,很麻烦,不如,做一个抽象类FlyAnimal,然后实现上面的接口,在里面实现flying这个方法,因为大部分的飞行动作是一样的,而eat方法则继续写成抽象方法,因为大部分的动物吃东西是不一样的,下面你再写蚊子类就简单了,可以直接继承这个抽象类,然后实现自己的吃方法就行了

    2016-07-05 11:12:48

    共 5 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530649 学习 · 6091 问题

查看课程

相似问题