Java中隐藏与覆盖的区别

来源:百度知道 编辑:UC知道 时间:2024/05/25 20:49:56
请详细解答 言简意赅 勿复制粘贴

小妹感激不尽了 ^^

因为静态方法不能被覆盖,如果在子类出现了同签名的就是隐藏,非静态方法称之为覆盖
区别在哪呢,比如有两个类Father和Son
public class Father {
public static void statMethod(){
}
public void nonstatMethod() {
}
}

public class Son extends Father {
public static void statMethod(){
}
public void nonstatMethod() {
}
}

如果Father father = new Son();
father.statMethod();调用的是父类的方法(隐藏)
father.nonstatMethod();调用的是子类的方法(覆盖)

隐藏一般是对静态的属性和方法来说的。 你看一下下面的这段代码:
class Planet {
public static void hide() {
System.out.println("The hide method in Planet.");
}

public void override() {
System.out.println("The overrid method in Planet.");
}
};

public class Earth extends Planet {
public static void hide() {
System.out.println("The hide method in Eart