为什么我们使用interface和abtract类,在哪种情况下应该使用抽象类和接口?任何人都可以用最简单的例子解释这个......
答案 0 :(得分:0)
当您希望所有子类型实现不同的特定逻辑时,您希望使用接口,例如:
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}
在此示例中,每个几何形状都必须像之前一样实现有关Area和Perimeter的特定逻辑,但现在所有子类型将共享用于检索几何的名称和边数的常用方法,这将是多余的定义在每个子类中。