// Person クラスの定義
class Person {
// introduce メソッド
public void introduce() {
System.out.println("I am a person.");
}
}
// Student クラスの定義(Person クラスを継承)
class Student extends Person {
// introduce メソッドをオーバーライド
@Override
public void introduce() {
System.out.println("I am a student.");
}
}
// Teacher クラスの定義(Person クラスを継承)
class Teacher extends Person {
// introduce メソッドをオーバーライド
@Override
public void introduce() {
System.out.println("I am a teacher.");
}
}
// メインクラス
public class Main {
public static void main(String[] args) {
// Person クラス型の動的な配列を作成
Person[] people = new Person[3];
// 異なる人物のオブジェクトを配列に格納
people[0] = new Person();
people[1] = new Student();
people[2] = new Teacher();
// 配列をイテレートして各オブジェクトがどのクラスのインスタンスであるかを確認
for (Person person : people) {
// Person クラスのインスタンスであるかを確認
if (person instanceof Person) {
System.out.println("This is an instance of Person");
}
// Student クラスのインスタンスであるかを確認
if (person instanceof Student) {
System.out.println("This is an instance of Student");
}
// Teacher クラスのインスタンスであるかを確認
if (person instanceof Teacher) {
System.out.println("This is an instance of Teacher");
}
// 各オブジェクトの introduce メソッドを呼び出し
person.introduce();
// 区切りの出力
System.out.println("----------------------");
}
}
}
このプログラムでは、Person
クラス型の動的な配列を作成し、その中に異なる人物のオブジェクトを格納しています。そして、配列をイテレートして各オブジェクトがどのクラスのインスタンスであるかを確認し、introduce
メソッドを呼び出しています。
実行結果:
This is an instance of Person
I am a person.
----------------------
This is an instance of Person
This is an instance of Student
I am a student.
----------------------
This is an instance of Person
This is an instance of Teacher
I am a teacher.
----------------------