2017-04-23 24 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(){ 
     //.... 
    } 
} 

これで、BMWやVolvoを含む車のリストを作成できます。

いくつかのプロデューサ固有のチェックに従ってチェックする必要があるため、一般的なcheckCar()メソッドを実装することは時々意味がありません。したがって、クラス抽象クラスとメソッドをマークする必要があります。

クラスアブストラクトにマークを付けると、チェックできない非特定車が生成されなくなります。
メソッドアブストラクトをマークすることは、一般的なカーチェックを実装することを強制されず、派生クラスに特定のカーチェックを実装させることを強制することにも使用されます。
checkCar()の実装を持たない一般的な車オブジェクトが存在しないことと、すべての特定のオブジェクト(たとえば、次のような)が存在しないことが保証されているため、Carsのリスト内のすべてのオブジェクトに対してcheckCar BMW)はその方法の実装を持っています。

関連する問題