Java中接口与抽象类的异同,抽象类和接口的异同
分享于 点击 17328 次 点评:12
Java中接口与抽象类的异同,抽象类和接口的异同
Java接口:Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
个人补充:Java接口中也可以有属性,只不过必须为 静态常量(由public static final修饰),因此 有数据共享的作用。
Java抽象类:Java语言中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类是它的所有子类的公共属性的集合,是包含一个或多个抽象方法的类。抽象类可以看作是对类的进一步抽象。在面向对象领域,抽象类主要用来进行类型隐藏。
个人补充:Java抽象类也可以不含抽象方法,这样的话纯粹是为了不允许实例化。不过个人感觉真正这样设计没什么卵意义。
相同点:
不同点:
- 从继承的角度:抽象类只允许单继承,而接口允许多继承。
- 从实现的角度:抽象类中允许有具体实现的方法,而接口则所有方法必为抽象方法(JDK8中接口新增了一个特性:接口中可以有静态实现方法)。接口中的属性必须为静态常量(由public static final修饰),而抽象类中没这个限制。接口还不能有构造方法,抽象类也没这个限制。
相关文章
- 暂无相关文章
用户点评