特に、継承を使用する場合は、次のように新しいオブジェクトをインスタンス化するための参照をいくつか見てきました。左右のクラス名が異なるオブジェクトを作成する
Cat cat = new Animal();
しかし、私はこの概念がどのように呼ばれているのかわかりません。それで、私はそれを読むことができません。
私には2つの質問があります。
- この概念は何と呼ばれていますか?
- どのようにして 元のクラスと異なるタイプを使用してオブジェクトを保持/参照できるのですか?
特に、継承を使用する場合は、次のように新しいオブジェクトをインスタンス化するための参照をいくつか見てきました。左右のクラス名が異なるオブジェクトを作成する
Cat cat = new Animal();
しかし、私はこの概念がどのように呼ばれているのかわかりません。それで、私はそれを読むことができません。
私には2つの質問があります。
遊びの基本的な考え方は、の継承です。それについて読んで開始するには良い場所がhttps://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html
あなたの一例を—逆転され、それはCat
クラスがAnimal
にするために必要なすべてのものを持っAnimal
—の特定の種類になりますので、これはある
Animal animal = new Cat();
する必要がありますオブジェクト、いくつかの追加機能猫のオブジェクトは、親動物からgetSound()
方法を持っているので、結果は
ニャー
だろう
public class Test
{
public static class Animal
{
protected String sound;
public String getSound() { return sound; }
public Animal() { sound = ""; }
}
public static class Cat extends Animal
{
public Cat() { sound = "meow"; }
}
public static void main(String[] args) {
Animal animal = new Cat();
System.out.println(animal.getSound());
}
}
そして:コードで
、これは次のようになり独自のコンストラクタを使用して作成され、データを適切に設定しました。
Cat
は一種のAnimal
ですが、その逆は必ずしも真実ではありません。 したがって、Animal
は、Cat
,Dog
などである可能性があります。猫や犬は動物の特性を持つためです。これは一般化と専門化とも呼ばれます。 Animal
は一般化されたカテゴリですが、Cat
はAnimal
の特殊カテゴリです。インターネット上で利用できるリソースはたくさんあります。オブジェクト指向プログラミングのパラダイムについて見てみましょう。がんばろう!