Java多态性是通过继承、接口和方法重写实现的。多态性允许我们使用一个共同的接口表示不同类型的对象,从而在运行时根据对象的实际类型调用相应的方法。这是通过编译器在运行时解析方法调用的实现的。
以下是Java多态性的实现方式:
class Animal { public void makeSound() { System.out.println("The animal makes a sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("The dog barks"); } } public class Main { public static void main(String[] args) { Animal myAnimal = new Dog(); // 使用父类引用指向子类对象 myAnimal.makeSound(); // 输出 "The dog barks" } } interface Flyable { void fly(); } class Bird implements Flyable { @Override public void fly() { System.out.println("The bird is flying"); } } class Airplane implements Flyable { @Override public void fly() { System.out.println("The airplane is flying"); } } public class Main { public static void main(String[] args) { Flyable myFlyable = new Bird(); // 使用接口引用指向实现类对象 myFlyable.fly(); // 输出 "The bird is flying" myFlyable = new Airplane(); // 使用相同的接口引用指向另一个实现类对象 myFlyable.fly(); // 输出 "The airplane is flying" } } class Animal { public void makeSound() { System.out.println("The animal makes a sound"); } } class Dog extends Animal { @Override public void makeSound() { System.out.println("The dog barks"); } } public class Main { public static void main(String[] args) { Animal myAnimal = new Dog(); // 使用父类引用指向子类对象 myAnimal.makeSound(); // 输出 "The dog barks" } } 通过这些方式,Java多态性允许我们编写更加灵活和可扩展的代码。