Java的多态是通过继承和方法重写来实现的。
首先,需要定义一个父类,该父类包含一个或多个方法。
然后,定义一个或多个子类,这些子类继承自父类,并重写父类中的方法。
父类中的方法可以使用关键字abstract
来定义为抽象方法,这样子类就必须实现这些抽象方法。
在使用多态时,可以声明一个父类类型的变量来引用子类对象,然后通过该父类类型的变量来调用方法。这样,根据实际引用的子类对象的类型,可以调用子类中重写的方法。
以下是一个示例代码:
class Animal {
public void sound() {
System.out.println("Animal makes sound");
}
}
class Dog extends Animal {
public void sound() {
System.out.println("Dog barks");
}
}
class Cat extends Animal {
public void sound() {
System.out.println("Cat meows");
}
}
public class Main {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // 输出:"Dog barks"
animal2.sound(); // 输出:"Cat meows"
}
}
在上述代码中,Animal是父类,Dog和Cat是子类。Animal类中定义了一个sound()方法,而Dog和Cat类分别重写了该方法。
在main()方法中,animal1和animal2是Animal类型的变量,分别引用了Dog和Cat类的对象。通过这些变量调用sound()方法时,实际上会调用子类中重写的方法,而不是父类中的方法。这就是多态的效果。