![](/img/trans.png)
[英]How to call a parent class method using child class reference using super keyword for object creation?
[英]Need help using super keyword to invoke parent class method
class TextClass
{
int temp;
void sum(int x,int y)
{
temp = x+y;
System.out.println("Sum of parent class sum method = " + temp);
}
}
class MethodOverriding extends TextClass
{
int temp;
void sum(int x,int y)
{
temp = x + y;
System.out.println("Sum of base or chlid class method = " + temp);
}
super.sum(10,15);
public static void main(String args[])
{
MethodOverriding mo = new MethodOverriding();
mo.sum(2,4);
System.out.println(mo.super.sum(3,5));
}
}
我將如何在 main 方法中使用super
關鍵字來調用父類sum
方法?
你不能直接從 main 方法訪問它,因為 main 是靜態的,你的兩個類都應該是靜態的來調用超級。 否則就像在下面的例子中,你創建一個對象,構造函數/方法將相應地調用 super 。 這是不可能的,超級是非靜態變量
官方文檔 在這里
如果您的方法覆蓋了其超類的方法之一,則可以通過使用關鍵字 super 來調用被覆蓋的方法。 您還可以使用 super 來引用隱藏字段(盡管不鼓勵隱藏字段)。 考慮這個類,超類:
示例:超類
public class SuperClass {
public void printHello() {
System.out.println("Hello from SuperClass");
return;
}
}
子類:
public class SubClass extends SuperClass {
public void printHello() {
super.printHello();
System.out.println("Hello from SubClass");
return;
}
public static main(String[] args) {
SubClass obj = new SubClass();
obj.printHello();
}
}
輸出:
Hello from SuperClass
Hello from SubClass
你不能從 Main 方法中做到這一點。
如果要使用 TextClass 類的 sum 方法,
你必須在 MethodOverriding 類中調用 super
但是如果你想同時使用這兩種方法,你可以在 MethodOverriding Class 中創建兩個不同的 sum 方法。 其中一個將調用 super.sum() 而另一個將覆蓋它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.