「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Javaの継承と多型:スーパークラスとサブクラスの使用

Javaの継承と多型:スーパークラスとサブクラスの使用

2025-02-06に投稿しました
ブラウズ:692

この記事では、Javaの継承がスーパークラスとサブクラスの間に「IS-A」関係を持っている方法を説明し、サブクラスがスーパークラス機能を継承してカスタマイズできるようにします。多型を使用することにより、サブクラスは独自の動作を定義し、オブジェクト指向プログラミングのコードの再利用と柔軟性を可能にします。


Javaでは、継承におけるスーパークラス(親クラス)とサブクラス(子クラスまたは派生クラス)の関係は、サブクラスが機能を継承するスーパークラスの特殊なバージョンであることを意味するIS-A関係です(制限は制限があります(CSU Global、n.d)から派生したクラスの適用されます。言い換えれば、クラスBがクラスAから継承する場合、クラスBはクラスAの「A」タイプAです。この関係により、クラスBはクラスAが提供するすべての機能(制限を適用できます)を使用すると同時に、独自の追加を追加できます。特定の機能または/およびクラスAの機能の一部またはすべてをオーバーライドすることにより、子どもクラスの機能をオーバーライドする能力は、多型の一形態です。

「多型の辞書の定義とは、生物または種が多くの異なる形態または段階を持つことができる生物学の原則を指します。この原則は、Java言語のようなオブジェクト指向のプログラミングや言語にも適用できます。クラスのサブクラスは、独自の動作を定義できますが、親クラスの同じ機能の一部(Java™チュートリアル、n.d。)は、共通のスーパークラスタイプを共有する異なるサブクラスの複数のオブジェクトを扱う場合に特に有益です。

例:犬、猫、フクロウは動物です:

superclass

public class Animal {
    public void makeSound() {
        System.out.println("Makes a Sound");
    }
}

動物のサブクラス

public class Domesticated extends Animal {
    public void friendly() {
        System.out.println("This animal is friendly.");
    }
}

飼いならされた
のサブクラス

public class Undomesticated extends Animal {
    public void notFriendly() {
        System.out.println("This animal is not friendly.");
    }
}

飼いならされた
のサブクラス

public class Cat extends Domesticated {
    @Override
    public void makeSound() {
        System.out.println("Meow");
    }
}

undoMonticatedのサブクラス

public class Owl extends Undomesticated {
    @Override
    public void makeSound() {
        System.out.println("Hoots");
    }
}

結果を出力するメインクラス

public class inheritanceExample {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        Cat myCat = new Cat();
        Owl redOwl = new Owl();

        System.out.println("MY Dog:");
        myDog.makeSound(); // Outputs: Bark
        myDog.friendly();  // Outputs: This animal is friendly.
        System.out.println();

        System.out.println("My Cat:");
        myCat.makeSound(); // Outputs: Meow
        myCat.friendly();  // Outputs: This animal is friendly.
        System.out.println();

        System.out.println("Red Owl:");
        redOwl.makeSound(); // Outputs: Hoot
        redOwl.notFriendly(); // Outputs: This animal is not friendly.
     }
}

注:犬と猫のクラスのmakeound()メソッドは、動物クラスのmakeound()メソッドを上書きします。

さらに、犬のクラスは、動物クラスのサブクラスである飼いならされたクラスのサブクラスです。

「→」の子
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

Javaでは、サブクラスにはスーパークラスが1つしかありません。たとえば、犬のクラスにはスーパークラスが家畜化され、スーパークラスの動物がありません。
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

言い換えれば、サブクラスにはスーパークラスが1つしかないことができます。そして、複数の親、祖父母、またはgreat祖父母を持つことは許可されていません。


Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

結論として、Javaの継承により、サブクラスはスーパークラスの機能を利用して拡張し、「IS-A」の関係を具体化し、多型を促進することができます。これにより、共通のスーパークラス全体で共有特性を維持しながら、サブクラスの特定の動作を有効にすることにより、コードの再利用性、柔軟性、一貫性が向上します。


参照:

cus global(n.d。)。モジュール1:継承の操作[インタラクティブ講義]。コロラド州立大学Global、CSC372:プログラミングII、コンピューターサイエンス部門。キャンバス。 2024年6月8日、https://csuglobal.instructure.com/courses/94948/pages/module-1-- overview?module_item_id = 4868813

から取得

Java™チュートリアル(n.d.)。 Java言語の学習:インターフェイスと継承。オラクル。 2024年6月8日からhttps://docs.oracle.com/javase/tutorial/java/iandi/polymorphism.html

から取得


元々は、2024年11月1日にレベルアップコーディングが発行した媒体についてalex.omegapyで公開されました。

リリースステートメント この記事は、https://dev.to/alex_ricciardi/inheritance-and-polymorphism-in-java-using-superclasses-and-subclasses-xubclasses-12jnに再現されています。消去
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3