abstract class 与 interface的区别
1.语法层次上的区别
(1)创建方法:
abstract class 抽象类名{ }interface 接口名{
}
(2)内容:
抽象类里面可以 有属性和方法:方法可以是 抽象的,也可以是抽象的。
接口中也有属性和方法:但是接口中的属性必须是 static final类型的,而且方法必须是抽象的。
(3)使用方法:
抽象的使用 通过继承(extend),而接口的使用是 实现接口(implements)
2.设计层次上的区别:
抽象类是 一种“is a ”模型,而接口是 “like a” 模型。
举一个一个例子:
有一个抽象类和一个接口:
abstract class car{
void run();
}
interface fly{
void fly();
}
如果我们现在有一种车,这个车会飞:那么我们应该
classFlyCar extends car implements fly{
}