抽象类(abstract class)和接口(interface)有什么异同?

Posted CANYON

tags:

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

相同点:

1.抽象类和接口都不能被实例化,但可以定义抽象类和接口类型的引用。

2.一个类如果继承了抽象类和接口,必须要对其中的抽象方法全部实现。(接口中方法默认的是public abstract修饰的)否则该类仍然需要被声明为抽象类。

不同点:

1、抽象类可以有构造方法,抽象方法和具体方法

   接口不能有构造方法,而且其中的方法全部都是抽象方法。(接口中方法默认的是public abstract修饰的

2、抽象类中的成员可以使private、默认、protected、public的

  接口中的成员全部都是public的。

3、抽象类可以 定义成员变量

  接口中定义的成员变量其实都是常量。(接口中的成员变量默认是public static final 修饰的

 

以上是关于抽象类(abstract class)和接口(interface)有什么异同?的主要内容,如果未能解决你的问题,请参考以下文章

在谈PHP中的 抽象类(abstract class)和 接口(interface)

抽象类(abstract class)和接口(interface)Java面试题

Java中抽象类和接口的区别(abstract class VS interface)

抽象类(abstract class)和接口(interface)相同点及不同点说明

抽象类(abstract class)和接口(Interface)的区别

抽象类(abstract class)和接口(interface)Java面试题