重写和重载的区别

重写(Override)
从字面上看,重写就是重写一遍。其实就是在子类中把父类本身已有的方法重新写一遍。子类继承父类原有的方法,但父类中该方法的功能逻辑并不满足现在的功能需求,所以在方法名、参数列表、返回类型都相同的情况下,对方法体进行修改或重写,这就是重写。但是子类方法的访问修饰符权限不可小于父类,注意:父类中被private(私有方法)修饰的方法不可重写,但子类可自己实现该方法,不叫重载也不叫重写,是该子类新增的方法

public class User {
    public  void add(){
        System.out.println("新增");
    }

}
class Student extends User{

    @Override
    public void add(){
        System.out.println("重新新增方法");
    }
}

总结:
1、发生在父类和子类之间;
2、方法名、参数列表、返回类型必须相同;
3、子类重写方法的访问修饰符限制一定要大于父类被重写方法的修饰符(public>protected>default>private)
4、子类重写方法一定不能抛出新的检查异常, 或者比父类被重写方法更加宽泛的检查异常.
重载(Overload)
在同一个类中,方法名称一致, 但参数个数、参数类型
、参数顺序不同、方法返回值可相同可不同、方法修饰符不同,发生在编译时期;
总结:
1、重载是同一个类的多态性的一种表现;
2、重载要求同名方法的参数个数、参数类型、参数顺序不同;
3、返回值类型可相同可不同;
4、发生在编译时期。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值