Interface classes 和 inner classes
interface class是纯粹的abstract class,它的函数只有原型,没有实现,interface可以内含成员成员变量,但是它们都自然而然称为static 和 final的。interface只提供形式不含实现细节。
insterface A{
...
}
interface前可以加public属性,但只有在与其同名的文件中才可以,负责就是friendly的。
实现该接口的类要使用implements关键字。
class B implements A{
...
}
interface中的函数可以声明为public,即使没有它们也是public的,所以实现interface时,必须继承自interface的所有函数定义为public的。
多重继承 multiple inheritance
派生类可以继承自一个或不继承抽象或具体的父类,其余只能是interface
class DerivedClass extends BaseClass
implements Interface1, interface2,..interfacen {
...
}
使用interface的原因:
1 能够向上转型至多个基本类别
2 (与abstract class一致)让客户端程序员无法产生它的对象,从而确保这只是一个接口而而非实现。
设计父类时,优先考虑是否可以使用interface,只有在必须有函数定义或成员变量时才使用抽象乃至具体类