java 复习6

本文介绍了多态在面向对象编程中的重要性,通过方法重载和重写实例展示其概念,并探讨了编译类型与运行类型的关系。对象的多态性允许动态绑定,如Animal与Dog/Cat的实例转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多态

【多态基本介绍】

方法或对象具有多种形态。是面向对象的第三大特征,多态是建立在封装和继承之上的

方法的多态
重写和重载就体现了多态

package Poly;

public class MethodPloy {
    public static void main(String[] args) {
        // 方法重载体现多态
        A a = new A();
        // 输入不同参数,就会调用不同的sum方法,就体现了多态
        System.out.println(a.sum(1,2));
        System.out.println(a.sum(1,2,3));

        // 方法重写体现多态
        B b = new B();
        a.say(); // A say()方法 被调用
        b.say(); // B say()方法 被调用

    }
}
class B { // 父类
    public void say(){
        System.out.println("B say()方法 被调用");
    }

}
class A extends B { //子类
    public int sum(int n1, int n2){
        return n1 + n2;
    }
    public int sum(int n1, int n2,int n3){
        return n1 + n2 + n3;
    }

    @Override
    public void say() {
        System.out.println("A say()方法 被调用");
    }
}
对象的多态
对象的多态(核心)

一个对象的编译类型和运行类型可以不一致
编译类型在定义对象时,就确定了,不能改变
运行类型是可以改变的
编译类型看定义时 = 号 的左边,运行类型看 = 号 的右边

例如:Animal animal = new Dog();【animal 的编译类型是Animal,运行类型是Dog】

​ animal = new Cat();【animal 的运行类型变为了Cat,编译类型还是是Animal】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值