转载

重写与重载的区别

重写与重载的区别

  • 重写

    • 重写必须继承,子类重写父类的方法
    • 重写的方法名,参数数目相同,参数类型兼容(返回类型没有要求)
    • 重写的方法的访问权限要大于等于父类的访问权限
    • 重写不可以抛出父类没有抛出的异常,可以抛出运行异常
    class Parent{
    protected char test(int a) {
        System.out.println("Parent");
        return 'c';
    }
    }
    class Child extends Parent{
    public int test(byte a) {
        System.out.println("Child");
        return 0;
    }
    }
    public class Fuction{
    public static void main(String args[]) {
        Parent a = new Child();
        a.test(1);
    }
    }
  • 重载

    • 重载方法名必须相同
    • 重载不需要继承,出现在同一个类中
    • 可以有不同的访问修饰符
    • 返回类型不要求,但是不能用返回类型来区分方法
    • 可以抛出不同的异常
    • 参数表必须不同
    public class Fuction{
    public void test(double a) {
        System.out.println("overload");
    }
    
    private int test(int a){
        System.out.println("origin");
        return 0;
    }
    
    public void run() {
        test(1);
        test(1.0);
    }
    public static void main(String args[]) {
        Fuction f = new Fuction();
        f.run();
    }
    }

    ?

正文到此结束
本文目录