Java中的多态(Polymorphism)是指一个对象在不同情况下表现出不同的形态。它允许用一个父类对象指向子类对象,可以通过父类方法来调用子类方法,实现程序的通用性和灵活性。
Java实现多态的机制是通过继承和方法重写实现的。具体来说,Java中通过定义一个父类,然后在子类中重写父类中的方法,这样在程序中就可以使用父类的引用来指向不同的子类对象,然后调用相同的方法名,但是其实际行为会根据具体的子类对象而有所不同。
例如,假设有一个父类Animal,和两个子类Dog和Cat,在这个父类中定义了一个move()方法,那么在每个子类中可以重写move()方法来实现动物的具体移动方式。
Animal类:
public class Animal {
public void move() {
System.out.println("Animal is moving.");
}
}
Dog类:
public class Dog extends Animal {
@Override
public void move() {
System.out.println("Dog is running.");
}
}
Cat类:
public class Cat extends Animal {
@Override
public void move() {
System.out.println("Cat is walking.");
}
}
这样,我们就可以通过Animal类型的引用指向Dog或者Cat类型的对象,并调用它们的move()方法,例如:
Animal a;
a = new Dog();
a.move(); // 打印 "Dog is running."
a = new Cat();
a.move(); // 打印 "Cat is walking."
在上面的例子中,a的类型是Animal,但是它指向了不同的子类对象,并且调用move()方法时会根据具体的对象类型来执行不同的动作,这就是多态的表现。多态不仅增加了程序的通用性和灵活性,还有利于代码的组织和维护。