如何在Java中实现多态?-多态函数的定义和使用方法。
发布时间:2023-07-06 02:32:28
在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 PolymorphismDemo {
public static void main(String[] args) {
Animal animal1 = new Dog();
Animal animal2 = new Cat();
animal1.sound(); // 输出:狗发出汪汪声
animal2.sound(); // 输出:猫发出喵喵声
}
}
在上面的示例中,Animal是父类,Dog和Cat是子类。Animal类中有一个sound方法,而子类Dog和Cat都重写了这个方法。
在main方法中,我们创建了一个Animal类型的引用变量animal1,并将其指向一个Dog对象。同时,我们也创建了一个Animal类型的引用变量animal2,并将其指向一个Cat对象。
接着,我们分别调用animal1和animal2的sound方法。由于animal1指向的是Dog对象,所以调用的是Dog类中重写的sound方法,输出"狗发出汪汪声"。而animal2指向的是Cat对象,所以调用的是Cat类中重写的sound方法,输出"猫发出喵喵声"。
通过这个示例,我们可以看到,对于相同的方法调用,由于对象的不同,输出结果也不同。这就是多态的体现,通过多态可以实现灵活而且具有扩展性的代码编写。
