Java中的多态性
CSDN 2024-07-14 17:35:03 阅读 58
Java中的多态性
1、方法重载(Overload)与多态性2、方法重写(Override)与多态性
💖The Begin💖点点关注,收藏不迷路💖
|
多态性(Polymorphism)是面向对象编程的三大基本特性之一,它允许我们以统一的方式处理不同的对象。多态性主要体现在方法的重写(Override)和方法的重载(Overload)上,但真正的多态性通常指的是方法的重写,并在运行时根据对象的实际类型来确定调用哪个方法。
1、方法重载(Overload)与多态性
方法重载允许在同一个类中定义多个同名但参数列表不同的方法。 然而,方法重载在编译时就已经确定了要调用的方法,因此它并不属于多态性的范畴。
<code>class Example {
void method(int a) {
System.out.println("带有整数参数的方法。");
}
void method(double a) {
System.out.println("带有双精度参数的方法。");
}
}
2、方法重写(Override)与多态性
方法重写是子类对父类已有方法的实现进行覆盖。 当子类对象调用该方法时,将执行子类中的方法,而不是父类中的方法。这就是多态性的体现
,因为它允许我们使用父类类型的引用变量来引用子类对象,并调用子类中的方法。
满足多态性的三个条件:
1、有继承: 子类必须继承自父类。
2、有重写: 子类必须重写父类中的某个方法。
3、父类引用指向子类对象: 通过父类类型的引用变量来引用子类对象。
示例代码:
class Animal {
void makeSound() {
System.out.println("动物发出声音");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("狗在叫");
}
}
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("猫在喵喵叫");
}
}
public class PolymorphismDemo {
public static void main(String[] args) {
Animal myDog = new Dog(); // 父类引用指向子类对象
myDog.makeSound(); // 输出 "狗在叫",展示了多态性
Animal myCat = new Cat(); // 另一个父类引用指向另一个子类对象
myCat.makeSound(); // 输出 "猫在喵喵叫",再次展示了多态性
}
}
在上面的示例中,我们有一个Animal类,以及两个继承自Animal的子类Dog和Cat。
Dog和Cat都重写了Animal中的makeSound()方法。在main方法中,我们创建了两个Animal类型的引用变量myDog和myCat,但实际上它们分别指向了一个Dog对象和一个Cat对象。
当我们调用myDog.makeSound()和myCat.makeSound()时,由于多态性,它们会分别调用Dog类和Cat类中的makeSound()方法,而不是Animal类中的方法。这就是Java中多态性的体现
。
💖The End💖点点关注,收藏不迷路💖
|
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。