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
方法?
答案 0 :(得分:0)
你不能直接从main方法访问它,因为main是静态的,你的两个类都应该静态调用super。否则,如下例所示,您创建一个对象,构造函数/方法将相应地调用super。哪个是不可能的,super是非静态变量
官方文档here
如果你的方法覆盖了它的一个超类的方法,你可以 通过使用关键字super调用重写的方法。您 也可以使用super来引用隐藏字段(尽管隐藏字段 不鼓励)。考虑这个类,Superclass:
实施例: 超级
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
答案 1 :(得分:0)
你不能从Main方法那样做。
如果要使用类TextClass的sum方法,
你必须在MethodOverriding Class
中调用super但是如果你想同时使用这两种方法,你可以在MethodOverriding Class中使用两种不同的求和方法。其中一个将调用super.sum()而另一个将覆盖它