Java 无法运行此程序?

Java 无法运行此程序?,java,Java,为棒球和板球比赛创建两个BatandBall游戏类的具体类。每个具体类应具有2个新数据成员和2个新成员函数。这两个类中的数据成员和成员函数不应相同 import java.util.*; abstract class BatAndBallGames { abstract void display(); abstract void rulesSummary(); int PlayersPerTeam; int LengthOfGame; } concrete cl

为棒球和板球比赛创建两个BatandBall游戏类的具体类。每个具体类应具有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();

  }
 }

我们不能用具体的关键字或标识符来定义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();

  }
 }

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

java中没有
concrete
关键字。默认情况下,类是具体的。这与不能实例化的
抽象类
形成对比

  • 默认混凝土
  • 如果使用了
    Abstract
    关键字,则为Abstract
在上面的(我猜是家庭作业)示例中,您有一个抽象类
BatAndBallGame
棒球
板球
都是蝙蝠和棒球运动的类型,因此从它们扩展而来。我们这样做的原因是因为所有的球拍和球类游戏都有某些属性。然而,有一个类型为
BatAndBallGame
的对象是没有意义的——它不是一个可以玩的真正的游戏,就像板球和棒球一样

所以你有:

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

在提供的代码中,使用“混凝土”作为修饰语是不合适的。正如阿披舍克·拉纳已经提到的,你可以移除它,它应该可以解决问题。如果您使用“concrete”作为类的访问修饰符,您可以去了解更多信息。

因此,除了
concrete
不是有效的标识符之外,为什么不能运行它?您在哪里读到的
concrete
。欢迎使用堆栈溢出。您已将代码转储到问题中,但未向我们提供任何关于什么不起作用的信息。请阅读-确保您清楚地描述了问题,理想情况下,将代码简化为演示问题的最小示例,并正确格式化。很有可能您的Java编译器已经告诉您为什么无法运行此程序。。。或者至少是其中一个原因。它告诉了你什么,你不明白什么部分?如何创建抽象类的具体类>>就像我在代码中使用的具体关键字一样??实际上问题是..>@MichaelM..>>为棒球和板球比赛创建两个具体的BatAndBallGames类。每个具体类应该有2个新的数据成员和2个新的成员函数。两个类中的数据成员和成员函数不应相同。编写main()方法来创建每个子类的对象,并向它们发送足够的消息来显示这些方法的工作情况。您还可以尝试创建抽象类的对象,以查看编译器打印的消息。是的,我知道。我不是在帮你做作业。我想解释为什么你的解决方案不起作用。