以下のコードで:
public class Animal {
....// class stuff here
}
public class Cat extends Animal {
....// class stuff here
}
新しい Cat オブジェクトを作成しようとしたときの違いは何ですか?:
Cat myCat = new Cat(); //and
Animal myCat = new Cat();
私は以前に、左側で最も一般的なものを宣言する必要があるリストを読んだことがあります(つまり
List<String> = new LinkedList<String>();
) そのため、代わりに ArrayList を使用するように実装を変更したい場合でも、変更するコードが少なくなります。
すべてのケースで、ラフト (この場合) で最も一般的な (最も具体的ではない) ものを常に宣言する必要がありますAnimal myCat = new Cat();
か?