重写(Override)和重载(Overload)

重写(Override)和重载(Overload)

重写发生在父类与子类之间,指子类继承父类时,把父类本身的方法进行修改或者重写,条件是方法名、参数、返回类型要一致,并且子类重写的访问修饰符等级不能低于父类的原方法修饰符等级,并且不能出现抛出新的异常。

public class Father {
    public static void main(String[] args) {
        Son son = new Son();
        son.hello();
    }
    public void hello(){
        System.out.println("hi");
    }
}

public class Son extends Father {
    @Override
    public void hello() {
        super.hello();
        System.out.println("VitoCollier");
    }
}

重载发生在同一个类里,同名的方法,参数类型不同、参数个数不同、参数的顺序不同即为重载,重载对返回类型没有要求,既可以相同也可以不相同,但是不能通过不同的返回类型,来判断是否为重载。

package Page01;
public class Overload {

    public static void main(String[] args) {
        System.out.println("111");
    }
    public void say() {
        System.out.println("hi");
    }
    public String say(String a) {
        System.out.println("hi" + a);
        return "demo";
    }
}
package Page02;
import Page01.Overload;

public class OverloadTest {
    public static void main(String[] args) {
        Overload overload = new Overload();
        String vito = overload.say("Vito");
        System.out.println(vito);
    }
}

重写能够让子类在父类方法基础上加入自己的东西

重载能使用相同的方法名(一个方法)来表示功能相同的(多个)方法,而且在调用的时使用相同名字(一个名字)的方法实现不同的功能。

载能使用相同的方法名(一个方法)来表示功能相同的(多个)方法,而且在调用的时使用相同名字(一个名字)的方法实现不同的功能。

前者增加编译时的多态性,后者增加运行时的多态性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值