【笔记】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)是(多个类)父类与子类/抽象类与实现类之间体现多态性 ,在运行时起作用
重载是同一个类中体现多态性,在编译时起作用
.

猜你喜欢

转载自blog.csdn.net/weixin_42380504/article/details/102724162
今日推荐