为什么我们在java中使用抽象类和抽象方法

时间:2017-04-23 12:30:00

标签: java abstract-class

我们可以在Java中使用抽象类和抽象方法向我提供一个实际的示例/场景吗?对示例代码的解释将有助于从概念上理解它。感谢

1 个答案:

答案 0 :(得分:1)

abstract class Car{
    public int drivenKm;
    //....

    public abstract void checkCar();
}
public class Volvo extends Car {
    public void checkCar() {
         checkWithVolvoTestSpecs1();
    }

    //you have some Volvo-specific tests implemented here 
    public void checkWithVolvoTestSpecs1(){
        //....
    }
}
public class BMW extends Car {
    public void checkCar() {
         checkWithBMWTest();
    }

    //you have some BMW-specific tests implemented here 
    public void checkWithBmWTest(){
        //....
    }
}

现在你可以列出包含宝马或沃尔沃汽车的汽车。

实现一般的checkCar()方法有时没有意义,因为需要根据某些特定于生产者的检查来检查它们。所以你应该标记类抽象和方法。

标记类摘要会阻止您生成无法检查的非特定汽车 标记方法摘要用于不强制实施一般汽车检查以及强制任何派生类实施特定汽车检查。
这个受助者可以为汽车列表中的每个对象调用checkCar() - 方法,因为它保证没有没有checkCar()实现的通用汽车对象以及每个特定对象(如BMW)在列表中有一个该方法的实现。

public static void main() {
    List<Car> cars = new ArrayList<Car>();
    cars.add(new Volvo());
    cars.add(new BMW());
    foreach(Car c:cars)
        c.checkCar();
}