前言
提示:這里可以添加本文要記錄的大概內(nèi)容:
方法的重載與重寫容易混,所以單獨(dú)拿出來比較
提示:以下是本篇文章正文內(nèi)容,下面案例可供參考
方法重載
在同一個(gè)類中,允許定義一個(gè)以上同名的方法稱為方法重載
方法重載的規(guī)則:
- 方法名相同
- 方法的參數(shù)必須不同,參數(shù)類型或參數(shù)個(gè)數(shù)不同
- 方法的重載與返回值類型無關(guān)
public class 方法重載 {
public static void m1(int x) {
System.out.println("第一個(gè)m1");
}
public static void m1(double y) {
System.out.println("第二個(gè)m1");
}
public static void main(String[] args) {
m1(4.0);
}
}
方法重寫
子類將從父類中繼承下來的方法重新實(shí)現(xiàn),叫方法重寫(重新編寫方法體)
方法重寫的規(guī)則:
- 方法名相同
- 參數(shù)相同
- 返回值類型相同
- 訪問權(quán)限不小于父類
- 拋出的異常聲明不大于父類
當(dāng)我們要重寫一個(gè)方法時(shí),我們可以在子類中定義一個(gè)同名的方法,使用@Override注解標(biāo)注該方法,來表明我們要重寫父類中的方法。
下面是一個(gè)重寫方法的例子:
public class Animal {
//父類
public void move() {
System.out.println("動(dòng)物在移動(dòng)");
}
}
public class Dog extends Animal {
//子類
@Override
public void move() {
System.out.println("狗在跑");
}
public static void main(String[] args) {
//測(cè)試
Animal animal = new Animal();
Dog dog = new Dog();
animal.move(); // 動(dòng)物在移動(dòng)
dog.move(); // 狗在跑
}
}
在上面的例子中,我們定義了一個(gè)Animal
類和它的一個(gè)子類Dog
Animal
類中有一個(gè)move()
方法,它用來輸出一句話“動(dòng)物在移動(dòng)”
在Dog
類中重寫了move()
方法,并在該方法中輸出了一句話“狗在跑”
當(dāng)我們調(diào)用move()
方法時(shí),如果調(diào)用的是Animal類的對(duì)象,就會(huì)輸出“動(dòng)物在移動(dòng)”,如果調(diào)用的是Dog
類的對(duì)象,就會(huì)輸出“狗在跑”。
這就是方法重寫的作用,它讓我們?cè)谧宇愔锌梢灾匦露x父類中的方法,并且可以根據(jù)需要修改其行為。
overload和override的區(qū)別
verload
是方法重載,override
是方法重寫,都是java多態(tài)性的體現(xiàn)
方法重載指的是同一類中,可以定義多個(gè)同名的方法
方法重載的語(yǔ)法規(guī)則:文章來源:http://www.zghlxwxcb.cn/news/detail-480354.html
- 方法名相同
- 方法參數(shù)必須不同,參數(shù)類型或個(gè)數(shù)不同
- 與返回值類型無關(guān)
方法重寫指的是子類將從父類繼承的方法進(jìn)行重新實(shí)現(xiàn)
方法重寫的語(yǔ)法規(guī)則:文章來源地址http://www.zghlxwxcb.cn/news/detail-480354.html
- 方法名相同
- 方法參數(shù)相同
- 返回值類型相同
- 訪問權(quán)限不小于父類權(quán)限
- 拋出的異常聲明不大于父類的拋出的異常聲明
到了這里,關(guān)于Java中方法的重載與重寫的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!