我不能将类扩展到另一个具有构造函数的类

时间:2017-01-03 07:50:07

标签: java

在继承中,我们已经了解到要访问另一个类的方法,我们应该编写“extends(父类)”。好吧,强文正在工作。但是我创建了一个类'People',其中包含构造函数'People'。我创建了另一个类'播放器'。无论何时我试图将'Player'类扩展为'People'类错误显示(说...“构造函数播放器未定义”)

Error message

。我该如何处理这个问题?

2 个答案:

答案 0 :(得分:1)

你需要在Player Class中创建一个具有所需参数的构造函数,如

public Player(String x,int y,String d){}

因为您没有使用类Player的空构造函数 或者你可以这样做

Player player = new People("",some int value,"");

答案 1 :(得分:1)

这是因为您的子类中没有定义类似的参数构造函数。有两种方法可以解决这个问题。

  1. 如果要使用构造函数创建对象并初始化参数。 在Player类中创建构造函数。

    public Player(String name, String age, String hairColor) {
     super(a);
    }
    
  2. 使用此构造函数创建对象,就像在main方法中一样。

    1. 如果您不想使用参数化构造函数创建对象,而是想要使用setter方法。 在父(People)类中定义默认构造函数,这样您就不需要在子类中创建任何构造函数。
    2. 如果在类中创建任何构造函数(在您的情况下为People),编译器不会创建默认构造函数(无参数构造函数),而且您还没有在Player类中创建任何构造函数,因此,编译器会在您的类中创建默认构造函数球员班,

          Public Player(){
          super();
          }
      

      但是People中没有默认构造函数,因此调用super();会抛出编译错误,这就是创建参数化构造函数所必需的原因。因此,只需在People类中创建一个默认构造函数并使用setter方法:

          public People(){
      
          }