【Java】重写(Override)和重载(Overload)的区别,简单示例,总结

重写(Override)

        在子类中把父类(基类)中本身有的的方法重写一遍,子类继承了父类原有的方法,所以在方法名,参数列表,返回类型都相同的情况下,对方法体进行修改或者重写。

        ps:但是要注意子类函数的访问修饰权限不能少于父类

重载(Overload)

        在一个类中,同名方法如果有不同的参数类别则视为重载.重载对返回类型没有要求(相同不相同都行,但是不能通过返回类型是否相同来判断重载)。

总结

        Override: 1.发生于父类于子类之间。

                        2.方法名,参数列表,返回值类型(除子类中的方法的返回值类型是父类中的子类)必须相同。

                        3.访问修饰符限制一定要大于被重写方法的访问修饰符。

                        public(可以被所有类访问)>protected(除了其他类,其他都可以访问(不能修饰类,内部类除外)>default(同一个包里的都可以访问)>private(最严格的访问权限,仅同一个类下的可以访问)。

                        4.重写方法一定不能抛出新的检查异常或者比被重写方法申明中更加宽泛的检查型异常。        

public class Father {
    public static void main(String[] args) {
        Son s = new Son();
        s.sayHi();
    }
    public void sayHi(){
        System.out.println("Hi");
    }
}
class Son extends Father{
    @Override
    public void sayHi(){
        System.out.println("HiHiHiHiHiHi");
    }
}

       Overload:1.重载是一个类中多态性的体现。

                       2.重载要求同名方法的参数列表(参数类型,个数,顺序)不同。

                       3.重载的时候,返回值的类型可以是相同也可以不同,无法以返回类型作为重载函数的区分标准。

public class Test {
    public static void main(String[] args) {
        Test a=new Test();
        a.niKo();
        a.niKo("G2");
    }
    public void niKo(){
        System.out.println("尼公子是2021年top3");
    }
    public void niKo(String name){
        System.out.println("尼公子是G2的大腿"+name);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值