java 抽象类和接口的差别

Posted clnchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 抽象类和接口的差别相关的知识,希望对你有一定的参考价值。

??

 语法层面上:

       1)抽象类能够提供成员方法的实现细节。而接口中仅仅能存在public abstract 方法。

  2)抽象类中的成员变量能够是各种类型的。而接口中的成员变量仅仅能是public static final类型的。

  3)接口中不能含有静态代码块以及静态方法。而抽象类能够有静态代码块和静态方法;

  4)一个类仅仅能继承一个抽象类。而一个类却能够实现多个接口。

补充:抽象类中可以不提供abstart方法,相同该类也不可以实例化

设计层面上:

       抽象是继承是“是不是”的关系。接口实现是“有没有”的关系。不如说有个抽象类Door(门),一个门类的继承子类WoodDoor(木门)。这个就是抽象类的继承。

比方有个Bird(鸟)类。有一个(Airplane)飞机类,它们都有一个方法fly()方法。这里就没有办法用抽象类来解决问题了,要用接口,由于显然鸟和飞机不是子类和父类的关系,它们仅仅是有共同的行为方法,它们都有fly方法,这个是“有没有”的概念。



以上是关于java 抽象类和接口的差别的主要内容,如果未能解决你的问题,请参考以下文章

抽象类和接口的使用场景的根本差别

java中抽象类和接口的区别?

java中怎么具体使用抽象类和接口???

java抽象类和接口区别

java抽象类和接口

java抽象类和接口使用及区别