声明要领的存在而不去实现它的类被叫做抽象类(abstract class),它用于要建树一个浮现某些根基举动的类,并为该类声明要领,但不能在该类中实现该类的情形。不能建树abstract 类的实例。然而可以建树一个变量,其范例是一个抽象类,并让它指向详细子类的一个实例。不能有抽象布局函数或抽象静态要领。Abstract 类的子类为它们父类中的悉数抽象要领供应实现,否则它们也是抽象类为。取而代之,在子类中实现该要领。知道其举动的其余类可以在类中实现这些要领。
接口(interface)是抽象类的变体。在接口中,悉数要领都是抽象的。多担率性可经由过程实现这样的接口而得到。接口中的悉数要领都是抽象的,没有一个有措施体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中担任举动。当类实现希罕接口时,它定义(即将措施体给以)悉数这种接口的要领。然后,它可以在实现了该接口的类的任何器材下调用接口的要领。因为有抽象类,它许可使用接口名作为引用变量的范例。凡是的动态联编将收效。引用可以转换到接口范例或从接口范例转换,instanceof 运算符可以用来抉择某器材的类是否实现了接口。 |
|