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💖点点关注,收藏不迷路💖



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。