多态性是面向对象编程中的一个核心概念,它允许同一个接口(或方法)有不同的实现方式。在Java中,多态性主要通过继承和接口实现。
什么是多态?
简单来说,多态性就是允许你将父类对象设置成为子类对象的实例。这样,你可以对父类对象使用子类中定义的方法,从而实现不同的行为。
class Animal {
void sound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
void sound() {
System.out.println("Dog barks");
}
}
class Cat extends Animal {
void sound() {
System.out.println("Cat meows");
}
}
public class Test {
public static void main(String[] args) {
Animal myAnimal = new Dog();
myAnimal.sound();
myAnimal = new Cat();
myAnimal.sound();
}
}
在上面的例子中,我们创建了一个Animal类和两个子类Dog和Cat。通过将Dog和Cat对象赋值给Animal类型的变量,我们可以实现多态。
多态的用途
- 代码复用:通过多态,我们可以使用一个父类引用调用子类的方法,从而实现代码复用。
- 扩展性:当我们需要添加新的子类时,我们只需要实现新的方法,而不需要修改现有的代码。
注意事项
- 多态性仅在方法调用时有效,如果访问成员变量,则必须使用具体的子类引用。
- 多态性是通过方法重写实现的,而不是通过构造函数。
下一节
如果你对多态性有了基本的理解,可以继续阅读 Java 继承教程 来深入了解继承的概念。
Dog