无法运行此程序?

时间:2015-09-24 06:15:41

标签: java

为游戏棒球和板球创建两个具体的BatAndBallGames类。每个具体类应该有2个新的数据成员和2个新的成员函数.2个类中的数据成员和成员函数不应该相同。

import java.util.*;

abstract class BatAndBallGames

 { 

  abstract void display();
  abstract void rulesSummary();
  int PlayersPerTeam;
  int LengthOfGame;

 } 

concrete class Baseball extends BatAndBallGames

 { 
   Baseball(int a,int b)

   {

     PlayersPerTeam=a;
     LengthOfGame=b;

   }

     void rulesSummary()

   {

     System.out.println("baseball rules");

   }

     void display()

   {

 System.out.println("In baseball PlayersPerTeam=" +PlayersPerTeam + " LengthOfGame=" +LengthOfGame);

   }
 }

   concrete class Cricket extends BatAndBallGames

   { 

    Cricket(int a,int b)

     {

       PlayersPerTeam = a;
       LengthOfGame = b;

     }

       void rulesSummary()

       {

         System.out.println("cricket rules");

       }

      void display()

       { 

         System.out.println("In cricket PlayersPerTeam=" +PlayersPerTeam + " LengthOfGame=" +LengthOfGame);

      }
}



 public class BatandBall

 {
  public static void main(String args[])

  {

  System.out.println("Airtel Champions League");

  BatAndBallGames obj = new Baseball(10,3); 
  obj.display();

  BatAndBallGames obj1 = new Cricket(11,8); 
  obj1.display();

  }
 }

3 个答案:

答案 0 :(得分:0)

我们不能具体作为关键字或标识符来定义java中的类。所以错误即将来临。 你可以尝试这样,它正在运作

import java.util.*;

    abstract class BatAndBallGames

     { 

      abstract void display();
      abstract void rulesSummary();
      int PlayersPerTeam;
      int LengthOfGame;

     } 

    class Baseball extends BatAndBallGames

     { 
       Baseball(int a,int b)

       {

         PlayersPerTeam=a;
         LengthOfGame=b;

       }

         void rulesSummary()

       {

         System.out.println("baseball rules");

       }

         void display()

       {

     System.out.println("In baseball PlayersPerTeam=" +PlayersPerTeam + " LengthOfGame=" +LengthOfGame);

       }
     }

      class Cricket extends BatAndBallGames

       { 

        Cricket(int a,int b)

         {

           PlayersPerTeam = a;
           LengthOfGame = b;

         }

           void rulesSummary()

           {

             System.out.println("cricket rules");

           }

          void display()

           { 

             System.out.println("In cricket PlayersPerTeam=" +PlayersPerTeam + " LengthOfGame=" +LengthOfGame);

          }
 }

class BatandBall

 {
  public static void main(String args[])

  {

  System.out.println("Airtel Champions League");

  BatAndBallGames obj = new Baseball(10,3); 
  obj.display();

  BatAndBallGames obj1 = new Cricket(11,8); 
  obj1.display();

  }
 }

答案 1 :(得分:0)

当人们谈论具体类时,他们只是在谈论可以实例化的类(即你可以创建该类的对象)。这是一个你需要了解的概念。

java中没有concrete个关键字。默认情况下,类是具体的。这与abstract class形成对比,后者无法实例化。

  • 默认情况下为混凝土
  • 如果使用abstract关键字,则为摘要。

在上面的(我的猜测,家庭作业)示例中,您有一个抽象类BatAndBallGameBaseballCricket都是BatAndBallGame的类型,因此从它们扩展。我们之所以这样做,是因为所有蝙蝠和球类游戏共享某些属性。但是,拥有BatAndBallGame类型的对象是没有意义的 - 它不是一个可以玩的真实游戏,就像板球和棒球一样。

所以你有:

abstract class BatAndBallGame {}
class Cricket extends BatAndBallGame {}
class Baseball extends BatAndBallGame {}

答案 2 :(得分:0)

在提供的代码中使用' concrete'因为修饰语是不合适的。正如 abhishek-rana 已经提到的,您可以删除它,它应该解决问题。如果你正在使用' concrete'作为课程的访问修饰符,您可以转到official tutorial了解更多信息。