interface和abstract class的区别
-
首先我们得知道interface和abstract class是什么?
-
interface 接口(在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。)
-
abstract class抽象类(指的是用关键字abstract修饰的类,叫做抽象类,是不允许实例化的类,不能直接创建对象,必须要通过子类创建才能使用abstract类的方法。)
在了解了interface和abstract class的含义之后,现在我们就要区分它们之间的一个相同点和不同点了。
相同点:
①:interface和abstract class都不可以被实例化。
②:interface的实现类和abstract class的子类只有全部实现了接口或者抽象类中的方法后才可以被实例化。
不同点:
①:一个类只能拥有一个abstract class,但是可以拥有多个interface。
②:interface和abstract class各自的一个访问权限的不同,abstract class中的抽象方法的访问权限可以是 public、protected 和默认类型,interface中的抽象方法只能是 public 类型的,并且默认即为 public、abstract 类型。
③:各自强调的一个作用不同,interface强调的是一个功能,abstract class强调的是一个关系。
④:interface只能定义抽象方法,而不能被实现。abstract class既可以定义也可以实现。