简单的多态性示例

发布时间 2023-12-14 03:45:37作者: aida_j
class Animal {
    public void makeSound() {
        System.out.println("Some generic sound");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("Woof! Woof!");
    }
}

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

public class PolymorphismExample {
    public static void main(String[] args) {
        // 使用多态性
        Animal myDog = new Dog();
        Animal myCat = new Cat();

        // 调用 makeSound 方法,实际上会调用具体对象的重写后的方法
        myDog.makeSound(); // 输出:Woof! Woof!
        myCat.makeSound(); // 输出:Meow!
    }
}
  1. Animal 是基类,其中有一个 makeSound 方法。
  2. DogCat 是继承自 Animal 的派生类,它们分别重写了 makeSound 方法。
  3. main 方法中,通过多态性,我们创建了一个 Animal 类型的引用 myDogmyCat,但它们分别指向了 DogCat 类型的对象。
  4. 当调用 makeSound 方法时,实际上调用的是具体对象的重写后的方法,而不是基类的方法。

这种灵活性使得我们可以通过统一的接口(基类)处理不同类的对象,而无需关心具体对象的类型。这是多态性在面向对象编程中的一个关键优势。

总结;基类是子类的父类,原本是子类名 对象名=new 子类名,有许多要设置可以用基类代替不同的子类名,如“基类名 对象名=new 子类名”这里代表不同的子类名,关系是从基类继承的

在面向对象编程中,基类(也称为父类或超类)是一个通用的类,而子类(也称为派生类)是基类的特定类型。通过使用基类的引用来引用子类的对象,可以实现多态性,从而提高代码的灵活性和可维护性。