色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java隱藏和覆蓋的區別

朱佳欣1年前6瀏覽0評論

在Java中,隱藏和覆蓋是兩個非常重要的概念,它們都涉及到類和方法之間的關系。雖然這兩個概念看起來相似,但是它們之間有一些關鍵的區別。

隱藏指的是在子類中定義了與父類中同名的方法或者變量,此時父類中同名的方法或變量將被隱藏。子類對象調用該方法或變量時,將只能訪問到子類中定義的方法或者變量,無法訪問到父類中同名的方法或者變量。

public class Parent{
public void print()
{
System.out.println("Parent Method");
}
}
public class Child extends Parent{
public void print()
{
System.out.println("Child Method");
}
public static void main(String args[])
{
Child obj = new Child();
obj.print();
}
}

在上面的例子中,子類Child繼承了父類Parent中的print()方法,并重寫了該方法。此時,當我們創建Child類對象,并調用print()方法時,將輸出"Child Method"。這是因為子類重寫了父類中的print()方法,子類對象調用該方法時將只能訪問到子類中的方法,而無法訪問到父類中的方法。

覆蓋指的是在子類中重寫了父類中同名的方法,此時子類對象調用該方法時將優先調用子類中定義的方法,如果該方法沒有在子類中被定義,則將優先調用父類中的相應方法。

public class Parent{
public void print()
{
System.out.println("Parent Method");
}
}
public class Child extends Parent{
public void print()
{
super.print();   // 調用父類中的print()方法
System.out.println("Child Method");
}
public static void main(String args[])
{
Child obj = new Child();
obj.print();
}
}

在上面的例子中,子類Child繼承了父類Parent中的print()方法,并在子類中重寫了該方法。此時,當我們創建Child類對象,并調用print()方法時,將輸出"Parent Method"和"Child Method"。這是因為子類重寫了父類中的print()方法,并在子類中調用了父類中的print()方法,子類對象調用該方法時優先調用子類中的方法,如果子類中未定義該方法,則將優先調用父類中的方法。