欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java覆蓋和重寫有什么區(qū)別

張越彬1年前8瀏覽0評論

在Java編程中,覆蓋和重寫這兩個概念常常被混淆。雖然它們很相似,但事實上有很大的區(qū)別。

覆蓋通常指的是子類對父類中的方法進行覆蓋,即該方法在子類中有一個與父類方法名稱、簽名和返回類型完全相同的實現(xiàn)。這通常用于希望修改或擴展父類方法行為的場景。在Java中,使用@Override注解可以標(biāo)識在方法上,以表示該方法覆蓋了父類方法。

public class Parent{
public void doSth(){
System.out.println("Parent does something");
}
}
public class Child extends Parent{
@Override
public void doSth(){
System.out.println("Child does something");
}
}

重寫則指的是子類對繼承得到父類中的方法進行重新實現(xiàn)。這通常用于子類希望利用繼承獲得父類行為的同時,根據(jù)自身需要進行修改或擴展的場景。因此,重寫的方法通常具有與父類方法名稱、簽名和返回類型相同的實現(xiàn),但也可以有不同的形式參數(shù)、修飾符或拋出異常。

public class Parent{
public void doSth(int num){
System.out.println("Parent does something with " + num);
}
}
public class Child extends Parent{
@Override
public void doSth(int num){
System.out.println("Child does something with " + num);
}
public void doSth(String str){
System.out.println("Child does something with " + str);
}
}

綜上所述,覆蓋和重寫的區(qū)別在于它們的目的不同。覆蓋是為了修改或擴展父類的行為,而重寫是繼承并利用父類的行為,同時根據(jù)自身需要進行修改或擴展。此外,如果子類方法的實現(xiàn)未與父類方法名稱、簽名和返回類型完全相同,則不算是覆蓋或重寫,而是重載。