JAVA多态之重载和重写

本文探讨了JAVA中的多态特性,强调在程序运行前后对象方法调用的不确定性。接着详细阐述了重载和重写的概念,通过实例展示了如何在子类中重载和重写父类方法,并解释了为什么父类引用无法调用子类的重载方法。最后总结了重载关注方法签名的差异,而重写关注父类方法的具体实现替换。

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

一、多态:

在程序运行之前:

1.无法知道自己创建的对象会调用那个方法

在程序运行之后:

1.可以知道自己创建的对象所调用的方法

2.程序运行过程中可以动态改变调用的方法


二、重载和重写:

子类继承父类,重载父类方法--------子类重写的方法与父类的方法只存在传入参数的差别.

如:

父类方法

public class Father(){

    public void write(){

        System.out.println("我是父类方法");

    }

    public void read(){

        System.out.println("我是父类读取");

    }   

}

子类方法

public class Son extend Father(){

    @Overload

    public void write(String Name){

         System.out.println("我是子类重载"+Name);   

    }


    @Override

    public void read (){

        System.out.println("我是子类读取");

    }

}


在调用的时候可以使用

Father() f = new Son();//向上转型,f可以调用父类所有方法,但不可以调用子类拥有的属性和方法.

f.write();

f.read();


结果是:

我是父类方法

我是子类读取


因为父类只能调用父类有的方法和类型,如果子类重载了父类方法,那么重载的方法就属于子类,所以父类无权调用.

重写方法可以理解为父亲的房子里面放了儿子的床和父亲的床,所以在儿子睡觉的时候还是睡自己的床,而不是父亲的床.


三、总结:

重载的方法于父类的方法名相同但是形参个数或者类型不同,返回类型是否相同不是区分重载的标准

重写是重写父类方法中的具体实现,本省方法名和形参列表没有变化.



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThreeLearning

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值