2017-04-23 120 views
-1

任何機構能爲我提供一個在Java中使用抽象類和抽象方法的實際例子/場景嗎?示例代碼的解釋有助於從概念上理解它。謝謝爲什麼我們在java中使用抽象類和抽象方法

+0

查看Java API:集合,JDBC,I/O等。它充斥着抽象類和接口。這些都是你應該需要的實際例子。 – duffymo

+0

[Java中的抽象類]的可能重複(http://stackoverflow.com/questions/1320745/abstract-class-in-java) – Gary99

回答

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()的普通汽車對象以及每個特定對象(如寶馬)在該列表中實施了該方法。

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