Java中多态概念

一、多态的概念

在Java中,多态是一个核心概念,它允许我们使用父类类型的引用指向子类对象,并调用子类的方法。多态主要可以分为对象多态和行为多态。

对象多态

对象多态指的是一个引用变量可以指向多种实际类型的现象。在Java中,这通常是通过继承和接口来实现的。

示例代码:
class Animal {
    void makeSound() {
        System.out.println("The animal makes a sound");
    }
}

class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("The dog barks");
    }
}

class Cat extends Animal {
    @Override
    void makeSound() {
        System.out.println("The cat meows");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myPet1 = new Dog(); // 对象多态:Animal类型的引用指向Dog对象
        Animal myPet2 = new Cat(); // 对象多态:Animal类型的引用指向Cat对象

        myPet1.makeSound(); // 输出 "The dog barks"
        myPet2.makeSound(); // 输出 "The cat meows"
    }
}

在这个例子中,myPet1myPet2 都是 Animal 类型的引用,但它们分别指向了 DogCat 对象。这就是对象多态的体现。

行为多态

行为多态指的是不同的对象对同一消息做出不同的响应。在Java中,这通常是通过方法的重写(Override)来实现的。

上面的示例代码中,myPet1.makeSound()myPet2.makeSound() 调用了相同的方法名 makeSound(),但由于它们指向的对象类型不同(一个是 Dog,一个是 Cat),所以输出了不同的结果。这就是行为多态的体现。

简单来说,对象多态是指引用变量的类型与实际对象的类型可以不同;而行为多态是指不同的对象在接收到相同的消息时,会表现出不同的行为。这两者共同构成了Java中的多态性。

二、补充

使用多态的好处

  • 在多态形式下,右边对象是解耦合的,更便于扩展和维护。
  • 定义方法时,使用父类类型的形参,可以接受一切子类对象,扩展性更强,更便利。

类型转换

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值