成为java的新手,在项目中使用抽象类和界面之间有什么区别?
答案 0 :(得分:3)
您只能使用“extends”关键字一次从一个类继承,但您可以使用“implements”关键字实现任意数量的接口。 此外,抽象类可以同时包含抽象和具体(已实现)方法,以及变量。
答案 1 :(得分:1)
接口不包含任何实现。它只描述了实现接口的类如何与其他类交互。
抽象类可以包含一些方法,这些方法被实现并定义抽象方法,类似于接口。
类和接口的使用不应该考虑整个项目,而应考虑到特定的地方。
答案 2 :(得分:1)
接口是一个契约(没有实现),其中抽象类既是合同的实现。
http://www.java-tips.org/java-se-tips/java.lang/difference-between-abstract-classes-and-inter.html
答案 3 :(得分:1)
如果你从技术上看不太合适,但是你可以或应该如何使用它:
接口的主要优点是类可以实现任意数量的接口。相比之下,一个类只能扩展一个其他类。 (java中没有多重继承。)
使用界面,您可以为您的班级添加单个“功能”。因此,您经常会读到接口名称以“able”结尾。比如“Serializable”或“Parceable”或类似的东西。
Abstract类可以是一个通用类,如果强制扩展它。比如“车辆”。你不能自己使用“车辆”,因为没有任何东西只是一个“车辆”。所以你必须实现一个扩展该类的类,可以是Cars或Boats ....
答案 4 :(得分:0)
在简单的engilsh中,接口是一个类,其中所有方法都是抽象的但不可实现(在接口中)。只有那些接口的子类(不是抽象类)必须实现抽象方法。
抽象类有一些方法实现,但可以包含必须由具体子类实现的抽象方法。
维基百科声明(interface):
面向对象语言中的术语 “界面”通常用于定义 不包含数据的抽象类型 但暴露定义为的行为 方法。一个拥有所有的类 对应的方法 据说接口实现了这一点 接口。此外,一堂课可以 实现多个接口,和 因此可以是不同类型的 同一时间。
维基百科:(Abstract Class)
抽象类或抽象基类 class(ABC),是一个不可能的类 实例化。这样的课只是 如果语言支持,则有意义 遗产。抽象类是 仅作为父类设计 可以派生哪些子类。 抽象类经常被用来 代表抽象概念或 实体。不完整的特征 然后由抽象类共享 一组添加的子类 失踪的不同变化 件。
在java中你扩展一个类/抽象类,但你实现一个接口。