Rumah  >  Artikel  >  Java  >  Kekeliruan untuk Pemula Java: Penggunaan Ajaib Pewarisan dan Polimorfisme

Kekeliruan untuk Pemula Java: Penggunaan Ajaib Pewarisan dan Polimorfisme

WBOY
WBOYasal
2024-05-07 11:15:02942semak imbas

Warisan membolehkan penciptaan kelas baharu yang mewarisi medan dan kaedah daripada kelas sedia ada, dan polimorfisme membolehkan objek diproses dengan cara yang berbeza bergantung pada jenisnya. Warisan mencipta hierarki kelas, dan polimorfisme membolehkan kod berfungsi dengan pelbagai jenis objek. Dalam sistem pengurusan tempat perlindungan haiwan, warisan boleh digunakan untuk mencipta kelas haiwan, dan polimorfisme boleh digunakan untuk mengendalikan ciri dan perbezaan sepunya antara pelbagai jenis haiwan, seperti dengan membuat bunyi.

Kekeliruan untuk Pemula Java: Penggunaan Ajaib Pewarisan dan Polimorfisme

Kekeliruan untuk Pemula Java: Kegunaan Ajaib Pewarisan dan Polimorfisme

Pewarisan dan polimorfisme ialah konsep asas pengaturcaraan berorientasikan objek, dan kadangkala sukar bagi pemula untuk memahaminya. Artikel ini bertujuan untuk menghuraikan kedua-dua konsep ini melalui kes praktikal.

Warisan

Warisan ialah mekanisme untuk mencipta kelas baharu yang mewarisi medan dan kaedah daripada kelas sedia ada. Ia membolehkan kami menggunakan semula kod dan mencipta hierarki kelas.

// 父类
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;
    }
}

Dalam contoh ini, kelas Rectangle mewarisi daripada kelas Shape. Kelas Rectangle menggunakan semula medan dan kaedah getArea() daripada kelas Shape dan mentakrifkan pembinanya sendiri. 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

在这种情况下,shapeshape2 变量都引用 Shape 类型的对象,但它们实际上指向不同的子类对象(RectangleCircle)。由于多态,我们能够调用 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()

Polymorphism

Polymorphism ialah apabila objek boleh diproses dengan cara yang berbeza, bergantung pada jenisnya. Ia membolehkan kami menulis kod yang berfungsi dengan pelbagai jenis objek tanpa perlu menyemak jenis objek secara eksplisit.

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

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

Dalam kes ini, kedua-dua pembolehubah shape dan shape2 merujuk kepada objek jenis Shape, tetapi ia sebenarnya menunjuk kepada subkelas yang berbeza Objek ( Segi empat tepat dan Bulatan). Disebabkan oleh polimorfisme, kami dapat memanggil kaedah getArea() tanpa mengetahui jenis objek tertentu. 🎜🎜🎜Contoh Praktikal🎜🎜🎜Warisan dan polimorfisme amat sesuai untuk mencipta kod berskala dan boleh digunakan semula. Sebagai contoh, pertimbangkan sistem pengurusan tempat perlindungan haiwan: 🎜
Woof!
Meow!
🎜Setiap haiwan boleh mengeluarkan bunyi melalui kaedah speak(). Oleh kerana sifat polimorfik, kita boleh dengan mudah meletakkan objek haiwan yang berbeza ke dalam senarai, kemudian melelang melalui senarai dan membuat setiap haiwan mengeluarkan bunyi. 🎜rrreee🎜🎜Output: 🎜🎜rrreee🎜Dengan pewarisan dan polimorfisme, kami boleh mencipta kod yang fleksibel dan boleh diperluas yang boleh mengendalikan ciri dan perbezaan sepunya antara pelbagai jenis objek. 🎜

Atas ialah kandungan terperinci Kekeliruan untuk Pemula Java: Penggunaan Ajaib Pewarisan dan Polimorfisme. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn