Java 継承
Java 継承 (サブクラスとスーパークラス)
Java では、あるクラスから別のクラスに属性とメソッドを継承できます。 「継承の概念」を次の 2 つのカテゴリに分類します。
- サブクラス(子) - 別のクラスから継承するクラス
- スーパークラス(親) - 継承元のクラス
クラスから継承するには、extends
を使用します。
以下の例では、Car
クラス (サブクラス) がVehicle
クラス (スーパークラス) から属性とメソッドを継承します。
例
class Vehicle {
protected String brand = "Ford"; // Vehicle attribute // Vehicle attribute
public void honk() { // Vehicle method
System.out.println("Tuut, tuut!");
}
}
class Car extends Vehicle {
private String modelName = "Mustang"; // Car attribute
public static void main(String[] args) {
// Create a myCar object
Car myCar = new Car();
// Call the honk() method (from the Vehicle class) on the myCar object
myCar.honk();
// Display the value of the brand attribute (from the Vehicle class) and the value of the modelName from the Car class
System.out.println(myCar.brand + " " + myCar.modelName);
}
}
Vehicleにprotected
修飾子があることに気づきましたか?Vehicleのブランド属性を保護された アクセス修飾子に設定します。private
に設定されている場合、Car クラスはアクセスできません。「継承」を使用する理由とタイミング、これはコードの再利用に役立ちます。新しいクラスを作成するときに既存のクラスの属性とメソッドを再利用します。ヒント:次の章Polymorphismも参照してください。Polymorphismでは、継承されたメソッドを使用してさまざまなタスクを実行します。
最後のキーワード
他のクラスがクラスを継承したくない場合は、final
を使用します。
final
クラスにアクセスしようとすると、Java はエラーを生成します。
final class Vehicle {
...
}
class Car extends Vehicle {
...
}
出力は次のようになります。
`Main.java:9: error: cannot inherit from final Vehicle class Main extends
Vehicle {
^
1 error)`
プログラミング学習を加速させる
プログラミングをプロの講師に教えてもらいませんか。