【笔记】JAVA中重写和重载的区别


参考学习:https://blog.csdn.net/qunqunstyle99/article/details/81007712#Java__32点我跳转

问题一:什么是重载?

重载的定义:

重载是指Java类中方法名称要相同,参数要顺序不同或者参数类型不同,不考虑修饰符不同,甚至可以抛出异常的同名方法也是方法 的额重载。

    //重载
    public static void toPrint(String s){
        System.out.println(s);
    }
    //修饰符不同
    private static void toPrint(String s , String a){
        System.out.println(s + "," + a);
    }
    //抛出异常
    public static void toPrint(Integer a) throws IOException{
        System.out.println(a);
    }
    //返回值不同
    public static String toPrint(Double d){
        System.out.println(d);
        return d.toString();
    }
    public static final void toPrint(){
        System.out.println("");
    }


问题二:什么是重写(Override)?

重写(Override)的定义:

1.一般存在于继承,父类跟子类/抽象接口与其实现类
2.方法的参数列表必须与被重写的方法相同。
3.返回数据类型必须与被重写的类型相同。
4.重写方法修饰符与被重写的修饰符相同。
5.处理异常时,重写方法不能主动向上层抛出异常throws,要在重写方法处理异常
(不满足上面任何一小点,都不能称为方法重写)

Father.java

public class Father {
    public void toSay(){
        System.out.println("我是你粑粑");
    }
}

Son.java

public class Son extends Father{
    @Override
    public void toSay() {
        System.out.println("我是儿子");
    }
}

Test.java

public class Test {
    public static void main(String[] args){
        //父类/抽象类 变量名 = new 子类名/实现类()
        Father people = new Son();
        people.toSay();
    }
}

总结

结论:重写(override)和重载都是Java的多态性的不同表现。

重写(override)是(多个类)父类与子类/抽象类与实现类之间体现多态性 ,在运行时起作用
重载是同一个类中体现多态性,在编译时起作用
.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码农阿福

看明白的同学,别忘请阿福喝奶茶

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

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

打赏作者

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

抵扣说明:

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

余额充值