为什么我们使用接口和抽象类,在哪种情况下应该使用抽象类和接口

时间:2012-05-16 11:55:08

标签: class interface abstract

  

可能重复:
  Use of Java [Interfaces / Abstract classes]

为什么我们使用interface和abtract类,在哪种情况下应该使用抽象类和接口?任何人都可以用最简单的例子解释这个......

1 个答案:

答案 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的特定逻辑,但现在所有子类型将共享用于检索几何的名称和边数的常用方法,这将是多余的定义在每个子类中。