(1)、abstract class 可以包含普通成员变量,而 interface 只能包含静态常量(即 public static final)。(2)、abstract class 可以包含非抽象方法,而 interface 中的所有方法都默认为抽象方法。(3)、一个类只能继承一个 abstract class,但可以实现多个 interface。
Java中的抽象类(abstract class)和接口(interface)是两种常见的抽象化机制,它们都可以被用于定义一些具有一定抽象特性的东西,例如API或者系统中的某些模块。尽管抽象类和接口有着相似之处,但也有明显的区别。下面将详细介绍这两个概念的不同点。 1、抽象类 抽象类是指不能直接实例化的类,只能被用来派生其他类,它被...
在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存 在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有 很大的相似性,甚至可以相互替换,因此很多开发者在进 行抽象类定义时对于abstract class和interface的 选择显得比较随意。
在abstract class方式中,Demo可以有自己的数据成员,也可以有非abstarct的成员方法,而在interface方式的实现中,Demo只能够有静态的不能被修改的数据成员(也就是必须是static final的,不过在interface中一般不定义数据成员),所有的成员方法都是abstract的。从某种意义上说,interface是一种特殊形式的abstract class。 对于abs...
// 方案1:只使用抽象类 abstract class Door{ abstract void open(); abstract void close(); abstract void alarm(); } // 具体使用时 class AlarmDoor extends Door { void open(){} void close(){} void alarm(){} } // 方案2:只使用接口 interface Door{ void open(); void close(); void ...
接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的...
1.abstract class 在 Java 语言中表示的是一种继承关系,一个类只能使用一次继承关系。 但是,一个类却可以实现多个interface。 2.在abstract class 中可以有自己的数据成员,也可以有非abstarct的成员方法, 而在interface中,只能够有静态的不能被修改的数据成员(也就是必须是static final的, ...
[修饰符] interface 接口名 [extends] [接口列表]{ 接口体 } interface 前的修饰符是可选的,如果使用修饰符,则只能用 public 修饰符,表示此接口是公有的,在任何地方都可以引用它,这一点和类是相同的。 接口是和类同一层次的,所以接口名的命名规则参考类名命名规则即可 ...
abstract void alarm(); } 或者 interface Door { void open(); void close(); void alarm(); } 那么具有报警功能的AlarmDoor的定义方式如下: class AlarmDoor extends Door { void open() { … } void close() { … } void alarm() { … } ...
接口(interface)可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的。接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。 下面比较一下两者的语法区别: 1.抽象类可以有构造方法,接口中不能有构造方法。