-2

假设有一个抽象超类只有一个具有默认实现的方法。现在,子类正在扩展超类,它覆盖了超类的方法。

如何在不使用子类对象的情况下调用超类的方法?

public abstract class SuperClass
{
    public void test()
    {
      System.out.println("SuperClass test method called");
    }
}

public class SubClass extends SuperClass
{
    public void test()
    {
      System.out.println("SubClass test method called");
    }
}

public class CallAbstract
{
     public static void main(String[] args)
     {
        //How to Call abtract SuperClass test method without using sub class object?
     }
}
4

2 回答 2

3

使用另一个匿名类,您可以这样做:

public class CallAbstract
{
   public static void main(String[] args)
   {
      (new BaseClass(){ }).test();
   }
}
于 2012-11-11T14:12:04.583 回答
0

您需要另一个不覆盖该方法的子类。test()

public class OtherSubClass extends BaseClass {

}

在你的main方法中:

OtherSubClass osc = new OtherSubClass();
osc.test();

或者像 Edwin Dalorzo 建议的那样使用匿名类。

于 2012-11-11T14:10:40.257 回答