overriding, overwriting, overloading的区别篇

Remarks: 从自家csdn搬运过来的

overriding(覆盖)

子类修改父类中定义的方法的实现——《Java程序语言设计》
子类继承了父类的同名无参函数。当子类从父类继承了一个无参函数,而又定义了一个同样的无参函数,则子类定义的方法覆盖父类的方法,称为覆盖。——《Java高手真经值Java核心编程技术》
Remarks: 在各书的定义里出现的多,但应用的overriding≈overwriting

overwriting(重写)

在子类中重新定义父类中已有的方法

class A{
    public void f(){
        System.out.printf("AAAA\n");
    }
}

class B extends A{
    public void f(){
        super.f(); //可调用父类方法
        System.out.printf("BBBB\n");
    }
}

overloading(重载)

同名的额函数通过不同形参做类似的事情
Remarks1: 形参个数 / 类型 / 顺序不同。
Remarks2: 返回值不一样,就不构成重载。

static int add(int a, int b, int c, int d){
        return a+b+c;
    }

    static double add(double x, double y){
        return x+y;
    }

你可能感兴趣的:(overriding, overwriting, overloading的区别篇)