如何通过super关键字调用基类方法

时间:2011-01-04 16:21:27

标签: java

class base
{
    public void superMethod()
    {
        System.out.println("Hello i m a super class method");
    }
}

class der extends base
{
    super.superMethod();// error identifier expected 
}

我需要调用基类方法而不将其重载到derive类中,请为我提供解决方案

5 个答案:

答案 0 :(得分:4)

除了调用方法之外,您不必执行任何操作。您确实需要在实例方法,构造函数或实例初始化程序块中执行此操作。如果在覆盖方法时必须进行区分,则只需要super关键字。

class Base
{
 public void superMethod()
 {
  System.out.println("Hello i m a super class method");
 }
}
class Der extends base
{
  public void method()
  {
     superMethod();// error identifier expected 
  }

  public void superMethod()
  {
     super.superMethod()
  }
}

答案 1 :(得分:4)

您不能将代码放在方法中。以下应该有效:

class base {
    public void superMethod() {
        System.out.println("Hello i m a super class method");
    }
}

class der extends base {
    public void someMethod() {
        super.superMethod();
    }
}

答案 2 :(得分:2)

你不需要做任何特别的事情。只需在基类中调用该方法即可。由于您没有重载它,它将自动调用基类方法。

答案 3 :(得分:1)

您可以按照以下示例调用超类方法。

class base
{
    public void superMethod()
    {
        System.out.println("hello i m a super class method");
    }
}

class der extends base
{
    {
        super.superMethod();
    }
}

class Supertest
{
    public static void main(String args[])
    {
        new der();
    }
}

答案 4 :(得分:0)

class base{
    public void superMethod(){
        System.out.println("hello i am super class method");
    }
}
class der extends base{
    void supermethod(){
        super.superMethod();
        System.out.println("hello this is der class");
    }
}
class mainclass{
    public static void main(String[] args){
        der r=new der();
        r.supermethod();
    }
}