ホームページ  >  記事  >  Java  >  Java 初心者の混乱: 継承とポリモーフィズムの魔法の使い方

Java 初心者の混乱: 継承とポリモーフィズムの魔法の使い方

WBOY
WBOYオリジナル
2024-05-07 11:15:02969ブラウズ

継承を使用すると、既存のクラスからフィールドとメソッドを継承して新しいクラスを作成でき、ポリモーフィズムを使用すると、オブジェクトを型に応じてさまざまな方法で処理できます。継承によってクラスの階層が作成され、ポリモーフィズムによってコードが複数の種類のオブジェクトを処理できるようになります。動物保護施設の管理システムでは、継承を使用して動物のクラスを作成したり、多態性を使用して、音を出すなど、さまざまな種類の動物間の共通の特性や相違点を処理したりできます。

Java 初心者の混乱: 継承とポリモーフィズムの魔法の使い方

Java 初心者の混乱: 継承とポリモーフィズムの魔法の使用法

継承とポリモーフィズムはオブジェクト指向の基本概念ですプログラミングは、初心者にとっては理解するのが難しい場合があります。この記事では、実際の事例を通じてこれら 2 つの概念について詳しく説明することを目的としています。

継承

継承は、既存のクラスからフィールドとメソッドを継承する新しいクラスを作成するためのメカニズムです。これにより、コードを再利用し、クラスの階層を作成できるようになります。

// 父类
class Shape {
    protected double length, width;

    public Shape(double length, double width) {
        this.length = length;
        this.width = width;
    }

    public double getArea() {
        return length * width;
    }
}

// 子类
class Rectangle extends Shape {
    public Rectangle(double length, double width) {
        super(length, width);
    }

    @Override
    public double getArea() {
        return length * width;
    }
}

この例では、Rectangle クラスは Shape クラスを継承します。 Rectangle クラスは、Shape クラスのフィールドと getArea() メソッドを再利用し、独自のコンストラクターを定義します。

ポリモーフィズム

ポリモーフィズムとは、オブジェクトをその型に応じてさまざまな方法で処理できることを意味します。これにより、オブジェクトの種類を明示的にチェックすることなく、複数の種類のオブジェクトを処理するコードを作成できます。

Shape shape = new Rectangle(4, 5);
System.out.println(shape.getArea()); // 输出:20.0

Shape shape2 = new Circle(3.14);
System.out.println(shape2.getArea()); // 输出:30.159265358979323

この場合、shape 変数と shape2 変数はどちらも Shape 型のオブジェクトを参照しますが、実際には異なるサブオブジェクトを指します。クラス オブジェクト (Rectangle および Circle)。ポリモーフィズムにより、オブジェクトの特定のタイプを知らなくても getArea() メソッドを呼び出すことができます。

実際的なケース

継承とポリモーフィズムは、スケーラブルで再利用可能なコードの作成に特に適しています。たとえば、動物保護施設の管理システムを考えてみましょう。

// Animal 类包含动物的共同特征
abstract class Animal {
    protected String name;
    protected int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public abstract void speak();
}

// Dog 类继承 Animal 类
class Dog extends Animal {
    public Dog(String name, int age) {
        super(name, age);
    }

    @Override
    public void speak() {
        System.out.println("Woof!");
    }
}

// Cat 类继承 Animal 类
class Cat extends Animal {
    public Cat(String name, int age) {
        super(name, age);
    }

    @Override
    public void speak() {
        System.out.println("Meow!");
    }
}

各動物は、speak() メソッドを通じて音を出すことができます。ポリモーフィックな性質により、さまざまな動物のオブジェクトをリストに簡単に入れて、リストを反復処理して各動物に音を鳴らすことができます。

List<Animal> animals = new ArrayList<>();
animals.add(new Dog("Rex", 5));
animals.add(new Cat("Fluffy", 2));

for (Animal animal : animals) {
    animal.speak();
}

出力:

Woof!
Meow!

継承とポリモーフィズムを通じて、さまざまな種類のオブジェクト間の共通の特性と相違点を処理できる、柔軟で拡張可能なコードを作成できます。

以上がJava 初心者の混乱: 継承とポリモーフィズムの魔法の使い方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。