【问题标题】:I'm unable to perform virtual method invocation我无法执行虚拟方法调用
【发布时间】:2011-01-04 16:47:59
【问题描述】:

这是我的代码:

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");
 }

}

【问题讨论】:

  • 请用大写命名你的类:Base1Der1 也最好将左大括号放在同一行。

标签: java inheritance polymorphism


【解决方案1】:

它不会编译。

你还需要基类中的showTest() 使其可编译

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

这里 bbase 的引用,你需要 showTest() in base 在编译时它会检查 showTest()base 和在运行时由于

base1 b=new der1(); 它将调用der1showTest() 版本

另见

【讨论】:

    【解决方案2】:

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

    1.- 在基类中声明

    class base1 {
         public void showTest(){
         }
    }
    

    或者 2.- 将b 声明为der1

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

    【讨论】:

      猜你喜欢
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多