ポリモーフィック配列を使用して、基本的な継承プログラムを作成しました。親クラスから、この配列がループされ、各インデックスの各オブジェクト(子クラスから作成された)が親クラスのインスタンスメソッドを実行します。
実験として、親クラス型の子クラスコンストラクター内にオブジェクトを作成し、そこから親クラスのインスタンスメソッドを実行しました。
私にはわからない理由で、これにより、インスタンスメソッド(子クラスのコンストラクターから実行)が親クラスのポリモーフィック配列の長さとして何度も実行されます(ポリモーフィック配列に5つの要素がある場合、子-class'メソッド呼び出しは5回実行されます)。
親クラスは次のとおりです。
public class MyClass
{
// instance variables
protected String name;
protected String numStrings;
// constructor
public MyClass(String name)
{
this.name = name;
}
// instance method
public void getDescription()
{
System.out.println("The " + name + " has " + numStrings + " strings.");
}
// main method
public static void main(String[] args)
{
MyClass[] instruments = new MyClass[2];
instruments[0] = new Child("Ibanez bass guitar");
instruments[1] = new Child("Warwick fretless bass guitar");
for(int i = 0, len = instruments.length; i < len; i++)
{
instruments[i].getDescription();
}
} // end of main method
} // end of class MyClass
...ここに子クラスがあります:
public class Child extends MyClass
{
// constructor
public Child(String name)
{
super(name); // calling the parent-class' constructor
super.numStrings = "four";
MyClass obj = new MyClass("asdf");
obj.getDescription();
}
} // end of class Child
...そしてここに出力があります:
The asdf has null strings.
The asdf has null strings.
The Ibanez bass guitar has four strings.
The Warwick fretless bass guitar has four strings.