如何在方法覆盖中使用main方法?

时间:2017-06-26 07:49:48

标签: java method-overriding main-method

我刚开始学习Java而且我正在学习方法覆盖。我试图在eclipse中运行它时在程序中出错。该计划如下:

class Vehicle{  
  void run(){System.out.println("Vehicle is running");}  
}  
class Bike extends Vehicle{  

  public static void main(String args[]){  
  Bike obj = new Bike();  
  obj.run();  
  }  
}  

错误是:

错误:在类Vehicle中找不到主要方法,请将主方法定义为:    public static void main(String [] args) 或者JavaFX应用程序类必须扩展javafx.application.Application

输出应该是:车辆正在运行。

我尝试输入语句" public static void main(String [] args)"之后"类车辆"但得到其他错误。我尝试了以下程序:

class Vehicle{  
     public static void main(String[] args){
  void run(){System.out.println("Vehicle is running");}  
     }
}  
class Bike extends Vehicle{  

  public static void main(String args[]){  
  Bike obj = new Bike();  
  obj.run();  
  }  
}  

然后,我收到以下错误:

线程中的异常" main" java.lang.Error:未解决的编译问题:     令牌上的语法错误" void",新的预期     run无法解析为某个类型     System.out无法解析为某种类型     语法错误,插入"标识符("完成MethodHeaderName     语法错误,插入")"完成MethodDeclaration     语法错误,插入";"完成MethodDeclaration     语法错误,插入"}"完成ClassBody     此方法需要正文而不是分号     令牌上的语法错误"}",删除此令牌

at Vehicle.main(Vehicle.java:3)

任何人都可以解释哪种方法可以插入主要方法'在上面的程序中。

提前谢谢。

2 个答案:

答案 0 :(得分:1)

这是错误的:

class Vehicle {
    public static void main(String[] args){
 void run(){System.out.println("Vehicle is running");}
    }
}

你不能将方法定义嵌套在另一个方法中......比如...

你可以这样做:

public class Test {

    public static void main(String args[]) {
        Bike obj = new Bike();
        obj.run();
    }

}

class Vehicle {
    void run() {
        System.out.println("Vehicle is running");
    }
}

class Bike extends Vehicle {

}

并确保您运行的类以启动应用程序是测试类(具有静态void main方法的类)

答案 1 :(得分:0)

第一次你是对的:

class Vehicle {  
    void run() {
        System.out.println("Vehicle is running");
    }  
}  
class Bike extends Vehicle {  

    public static void main(String[] args) {  
        Bike obj = new Bike();  
        obj.run();  
    }
}  

这运行我刚测试过,这是我的输出:

Vehicle is running
Process finished with exit code 0

我可以建议你在跑步之前尝试做“干净和放大”。