抽象类定义:
- 包含抽象方法的类叫做抽象类。
- 如果一个类包含抽象方法则该类必须被限定为抽象的。
- 子类必须实现抽象类中的抽象方法,否则子类也必须被abstract修饰为抽象类。
- 不能产生抽象类对象。
接口定义:
- interface关键字产生一个完全抽象的类,没有提供任何具体实现,它允许创建者确定方法签名和返回类型,但没有任何方法体。
- 一个类可以实现多个接口。
- 接口可以包含域(成员变量),但是这些域隐式地是static和final并且public的。
- 接口中的方法默认为是public的,最好显式声明一下。
- 子类实现接口,若父类含有和接口中相同特征签名的方法(除了方法体没有,其他都一样),子类就不用再实现了。
- 可以通过继承接口来扩展接口,并且接口可以继承多个接口。
interface Test2{
void put();
}
interface Test3{
void add();
}
interface Test4 extends Test2, Test3{
void get();
}
嵌套接口
- 可以在类里面嵌套接口(内部接口),可以由public、包及private修饰。
- 嵌套在另一个接口中的接口自动就是public的,不能声明为private。
- 当实现某个接口时,并不需要实现嵌套在其内部的任何接口。
- private接口不能在定义它的类之外被发现。
Thinking in Java 第九章 接口