導入
「学生も人間の一種」なので、人間が持つ機能(名前・自己紹介)はそのまま使いたいはずです。いちいち同じフィールドとメソッドを書き直すのは面倒ですし、修正漏れの原因にもなります。
説明
継承 を使うと、あるクラス(スーパークラス/親クラス)の機能を、別のクラス(サブクラス/子クラス)がそのまま引き継げます。Javaでは extends キーワードを使います。
public class Main {
public static void main(String[] args) {
Student s = new Student();
s.name = "はな";
s.introduce();
}
}
class Person {
String name;
void introduce() {
System.out.println("わたしは" + name + "です");
}
}
class Student extends Person {
String school;
}
classDiagram
Person <|-- Student
class Person {
+String name
+introduce()
}
class Student {
+String school
}
class Student extends Person { ... }…StudentはPersonを 継承 します。Person(スーパークラス)のnameフィールドやintroduce()メソッドを、Student(サブクラス)は自分で書かなくてもそのまま使えます。Studentにはschoolという独自のフィールドも追加できます。継承は「親の機能を引き継ぎつつ、自分の機能を足す」仕組みです。
やってみよう
下のエディタを実行して、Student が Person の introduce() をそのまま使えることを確かめましょう。Student に独自のフィールドやメソッドを追加してみてください。
演習
Vehicle(乗り物)クラスに String name フィールドと、name + "が走る" と表示する run() メソッドを持たせてください。Car extends Vehicle というクラスを作り(中身は空でよい)、main で Car のインスタンスを作って name に "スポーツカー" を設定し、run() を呼んで スポーツカーが走る と表示してください。
ヒント1を見る
class Vehicle { String name; void run() { System.out.println(name + "が走る"); } }。
ヒント2を見る
class Car extends Vehicle { } として、main で Car c = new Car(); c.name = "スポーツカー"; c.run();。