可能重复:
使用 Java [接口/抽象类]
为什么我们使用接口和抽象类,在什么情况下应该使用抽象类和接口?谁能用最简单的例子来解释这个.....
可能重复:
使用 Java [接口/抽象类]
为什么我们使用接口和抽象类,在什么情况下应该使用抽象类和接口?谁能用最简单的例子来解释这个.....
当您希望所有子类型实现不同的特定逻辑时,您希望使用接口,例如在这种情况下:
interface GeometricalShape{
# only abstract methods are allowed
GetArea();
GetPerimeter();
}
在这种情况下,每个几何形状都必须实现特定的逻辑来计算面积和周长。
当您的子类型必须实现某些特定逻辑时,您希望使用抽象类,但您仍然具有所有子类型共有的逻辑,例如在这种情况下:
abstract class GeometricalShape{
name;edgeCount;
protected GeometricalShape(name,edgeCount)
#abstract methods
abstract GetArea();
abstract GetPerimeter();
#Concrete methods
GetName(){return name;}
GetEdgesCount(){return edgesCount}
在这个例子中,每个几何形状都必须像以前一样实现关于面积和周长的特定逻辑,但是现在所有子类型都将共享用于检索几何形状的名称和边数的通用方法,这将是多余的,在每个和每个子类。