Java中实现多态性的方式包括:
- 通过继承和方法重写来实现,子类可以重写父类的方法,当通过父类引用调用该方法时,实际执行的是子类重写后的方法。
- 通过接口实现多态性,接口定义了一组方法的规范,而实现接口的类可以根据自己的需要来实现这些方法,当通过接口引用调用方法时,实际执行的是实现类中对应的方法。
- 通过方法的重载来实现,即在同一个类中定义了多个方法,它们具有相同的名称但是参数列表不同,在调用该方法时,根据传入的参数的类型和数量来确定调用哪个方法。
下面是一个示例代码:
class Animal { public void sound() { System.out.println("动物发出声音"); } } class Dog extends Animal { @Override public void sound() { System.out.println("狗叫"); } } class Cat extends Animal { @Override public void sound() { System.out.println("猫叫"); } } public class PolymorphismExample { public static void main(String[] args) { Animal animal1 = new Dog(); Animal animal2 = new Cat(); animal1.sound(); animal2.sound(); } }
输出结果:
狗叫 猫叫
在上面的示例中,Animal类是父类,Dog和Cat类是子类,它们都重写了父类的sound()方法,当通过父类引用调用sound()方法时,实际执行的是子类重写后的方法,这就是多态性的体现。