多态性是面向对象编程的一个重要概念,它允许不同类的对象对相同的消息作出不同的响应。在Java中,多态性主要通过方法的覆写和接口实现来实现。

1. 方法覆写实现多态:
class Animal {
    void makeSound() {
        System.out.println("Some generic sound");
    }
}

class Dog extends Animal {
    // 子类覆写了父类的方法
    void makeSound() {
        System.out.println("Bark bark!");
    }
}

class Cat extends Animal {
    // 另一个子类覆写了父类的方法
    void makeSound() {
        System.out.println("Meow meow!");
    }
}

public class PolymorphismExample {
    public static void main(String[] args) {
        // 使用多态性,父类引用指向子类对象
        Animal myAnimal = new Dog();
        // 调用的是实际对象的方法
        myAnimal.makeSound();

        // 通过多态性,可以轻松切换不同的实现
        myAnimal = new Cat();
        myAnimal.makeSound();
    }
}

2. 接口实现多态:
interface Shape {
    void draw();
}

class Circle implements Shape {
    public void draw() {
        System.out.println("Drawing a circle");
    }
}

class Rectangle implements Shape {
    public void draw() {
        System.out.println("Drawing a rectangle");
    }
}

public class InterfacePolymorphismExample {
    public static void main(String[] args) {
        // 使用多态性,接口引用指向实现类对象
        Shape myShape = new Circle();
        myShape.draw();

        // 通过多态性,可以轻松切换不同的实现
        myShape = new Rectangle();
        myShape.draw();
    }
}

在上述示例中,多态性通过父类引用指向子类对象(方法覆写)或接口引用指向实现类对象(接口实现)来实现。这使得代码更加灵活,能够适应不同的实现。

总体而言,多态性是面向对象编程中非常强大的概念,它使得代码更加灵活、可维护和可扩展。


转载请注明出处:http://www.zyzy.cn/article/detail/13482/Java