我无法执行虚方法调用

时间:2011-01-04 16:47:59

标签: java inheritance polymorphism

这是我的代码:

class base1
{

}
class der1 extends base1
{
 public static void main(String []args)
 {
  base1 b=new der1();
  b.showTest();
 }
 public void showTest()
 {
 System.out.println("Hello i am a derive class");
 }

}

2 个答案:

答案 0 :(得分:2)

它不会编译。

你需要基类中的showTest()来使其可编辑

base1 b = new der1(); b.showTest();

此处bbase的引用,您需要在showTest()base在编译时检查showTest()中的base并且在运行时由于

base1 b=new der1(); 它将调用der1的{​​{1}}

版本

另见

答案 1 :(得分:1)

方法showTest()在子类中定义。为了能够使用它,你必须:

1.-在基类中声明它

class base1 {
     public void showTest(){
     }
}

或者 2.-将b声明为der1

public static void main( String [] args ) { 
    der 1 b = new der1();
    ...