首先从定义出发了解一下抽象方法和抽象类。
java中提供一种叫抽象方法的机制,这种方法是不完整的,仅有声明没有方法体
如:abstract void method();
包含抽象方法的类叫做抽象类。如果一个类包含一个或多个抽象方法,该类必须被限定为抽象的(否则编译会报错)。
如:abstract class intrument() {
abstract void play();
}
当然,我们也可以创建一个没有任何抽象方法的抽象类。但通常情况下会让包含的方法没有了实际意义
interface是一个完全抽象类,它根本就没有提供任何具体的实现,它允许确定方法名,参数列表和返回值类型,却是没有任何方法体。
接口只是提供了形式,没有提供任何具体实现。
如: interface Instrument() {
void play();
}
interface不仅是一个极度抽象的类,因为它允许人们通过创建换一个能够向上转型的为多种基类的类型,来实现某种雷系多重继承变种特性。
接口中可以显示将方法声明为public的,但即使你不这样做,他们也是public的。也就是说,在接口中定义的方法必须肯定是public的!
同时接口也可以包含域,但是这些域隐示的都是static 和final的!
待续。。。