0

我正在为我的课程做一个练习,我通过编码偶然发现了一个问题。我应该做一个扩展类,我认为我遇到的问题是我为构造函数提供的参数。

这是直接超类:

public class ElectricalComponent extends Component 
{ 
  private int myMinRating, 
              myMaxRating; 
      
  public ElectricalComponent( String partNumber, int versionNumber, int minRating, int maxRating ) 
  { 
    super( "Electrical", partNumber, versionNumber ); 
    myMinRating = minRating; 
    myMaxRating = maxRating; 
  } 

  public int getMinRating() { return myMinRating; } 
  public int getMaxRating() { return myMaxRating; } 
}

这是我正在学习的课程:

public class HighvoltageComponent extends ElectricalComponent
{
  private int myMinRating, myMaxRating;

  public HighvoltageComponent( String partNumber, int versionNumber)
  {
    super( "Electrical", partNumber, versionNumber );
    myMinRating = 50000;
    myMaxRating = 200000;
  }

}

我的问题出在子类中:“HighvoltageComponent (String ...)”

当我运行主要课程时

public static void main( String[] args )
{
  // test your code here
  Component a = new HighvoltageComponent( "HV12", 0 );

  System.out.println( a.toString() );
  System.out.println( a.getTypeName() );
  System.out.println( a.getPartNumber() );
  System.out.println( a.getVersionNumber() );
}

我收到错误消息

“HighvoltageComponent.java:9:找不到符号

符号:构造函数 ElectricalComponent(java.lang.String,java.lang.String,int) "

为什么会这样?

另外,你能告诉我我是否以正确的方式做这个问题?这是问题:

高压组件是最小额定值 50000 和最大额定值 200000 的电气组件。完成高压组件的以下定义。(您需要在下方代码区域的多个位置插入代码。)

谢谢,罗汉

4

3 回答 3

2

ElectricalComponent 构造函数需要四个参数,你 super( "Electrical", partNumber, versionNumber );HighvoltageComponent类的调用中只传递了三个参数

你的超级电话应该是这样的

super( partNumber, versionNumber,myMinRating ,myMaxRating );
于 2012-08-10T03:00:41.860 回答
0

由于发现所有ElectricalComponent扩展都具有minRatingand maxRating,因此您可以更好地更改这两个字段protectedElectricalComponent类中的范围,并在其构造函数中删除这两个参数。这避免了在父实例和子实例中保持相同的值。

于 2012-08-10T03:05:44.650 回答
-1
public class HighvoltageComponent extends ElectricalComponent
{ 

  public HighvoltageComponent(  String partNumber, int versionNumber)
  {

    super( partNumber, versionNumber, 50000 ,200000 ); 

  }


}
于 2015-08-10T13:21:33.193 回答