私の質問です。これらは同じですか?私は魚クラスのペットのクラスをインスタンス化しているかのよう理解に問題があり、拡張してインスタンス化する。クラスをインスタンス化するのと同じ拡張ですか?
public class Pet {
}
public class Fish extends Pet {
}
私は魚のクラスにクラスペットを拡張する場合は、その同じですか?拡張は上にあり、インスタンスは下にあります。彼らは同じですか?
public class Pet {
}
public class Fish {
Pet myPet = new Pet();
}
いいえ、それらは同じではありません。 OOPで継承されていることだけを少し読んでみる必要があります。 – alzee
クラスを拡張するとき、最初のクラスの属性とメソッドを継承する別のクラス(サブクラス)を定義しています。クラスをインスタンス化すると、そのクラスの新しいオブジェクト(インスタンス)が作成されます。 あなたのコードでは、最初のケースでは、Fishという名前の新しいクラスを作成しています.Fishという名前のクラスでいくつかの共通のもの(継承)を持っています。そしてFishはPetのサブクラスです。また、Petと共通のものを持たないFishという名前が付いていますが、「ペット」という名前のmyPetという名前の属性があります。 –
Googleのコンポジションと継承 – StaticBeagle