Java面試-重載與重寫的區別
重載 override:
發生在子類和父類中,子類將父類中“方法名、參數列表相同”的方法進行重新實現。
其要求是:返回值範圍小於等於父類,拋出的異常範圍小於等於父類, 訪問修飾符範圍大於等於父類;如果父類方法訪問修飾符爲 private 則子類就不能重寫該方法。
重寫 overwrite:
發生在同一個類中,對同名函數的不同實現方法。
要求是:參數類型不同、個數不同、順序不同,方法返回值和訪問修飾符可以不同,發生在編譯時。
重載 override的代碼:父類動物 和 子類貓 的實現
父類Animal類
public class Animal {
String kind="";
String name="";
int old;
void setKind(String kind)
{
this.kind=kind;
}
String getKind()
{
return this.kind;
}
void run()
{
System.out.println("I am running!");
}
}
子類Cat類
public class Cat extends Animal{
public Cat()
{
super();
}
public void run()//重載了父類中的run方法
{
System.out.println("Running!!");
}
}
重寫 overwrite 的代碼:父類動物重寫run方法 同名函數 不同的參數,不同的實現方式
public class Animal {
String kind="";
String name="";
int old;
void setKind(String kind)
{
this.kind=kind;
}
String getKind()
{
return this.kind;
}
void run()
{
System.out.println("I am ,"+kind+" running!");
}
void run(int speed)
{
System.out.println("I am running with speed"+speed);
}
}