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) "

なぜこうなった?

また、私がこの質問を正しい方法で行っているかどうか教えてください。これは質問です:

HighvoltageComponent は、最小定格が 50000 で最大定格が 200000 の ElectricalComponent です。次の HighvoltageComponent の定義を完了します。(以下のコード領域の複数の場所にコードを挿入する必要があります。)

ありがとう、ローハン

4

3 に答える 3

2

ElectricalComponentコンストラクターには 4 つのパラメーターが必要ですが、クラス の呼び出し super( "Electrical", partNumber, versionNumber );で3 つのパラメーターのみを渡しましたHighvoltageComponent

スーパーコールは次のようになります

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

すべてのElectricalComponent拡張機能にはminRatingとがあることがわかっているmaxRatingため、これら 2 つのフィールドのスコープをクラスに変更protectedElectricalComponent、コンストラクターでこれら 2 つのパラメーターを削除することをお勧めします。これにより、親インスタンスと子インスタンスの両方で同じ値を維持することが回避されます。

于 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 に答える