Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでスーパークラスのfinalメソッドをオーバーライドしようとするとどうなりますか?


最終として宣言されているメソッド スーパークラスではオーバーライドできません サブクラスによって。 finalメソッドをオーバーライドしようとした場合 スーパークラスの場合、Javaでエラーが発生します。

メソッドのオーバーライドを実装するためのルール

  • メソッド宣言は、オーバーライドされるメソッドの宣言と同じである必要があります。
  • クラス(サブクラス)は、オーバーライドを試みる前に、別のクラス(スーパークラス)を拡張する必要があります。
  • サブクラスがスーパークラスのfinalメソッドをオーバーライドすることはできません。

class Car {
   public void brake() {
      System.out.println("brake() method of Car");
   }
   public final void accelerate() {
      System.out.println("accelerate() method of Car");
   }
}
public class BenzCar extends Car {
   public static void main(String[] args) {
      BenzCar benz = new BenzCar();
      benz.accelerate();
      benz.brake();
   }
   public void accelerate() {
      System.out.println("accelerate() method of Benz Car");
   }
}

上記の例で、 finalメソッド(accelerate()メソッド)をオーバーライドしようとすると スーパークラスの 。コンパイラはエラーをスローします 。したがって、Javaのスーパークラスのfinalメソッドをオーバーライドしません。

出力

overridden method is final

  1. Javaでpack()メソッドを使用できるのはいつですか?

    pack() メソッドはウィンドウで定義されています Javaのクラスであり、すべてのコンテンツが適切なサイズ以上になるようにフレームのサイズを設定します。 pack()の代替 メソッドは、 setSize()を呼び出して、フレームサイズを明示的に確立することです。 またはsetBounds() メソッド。通常、 pack()を使用します setSize()よりもメソッドを呼び出す方が望ましい パックはフレームレイアウトマネージャーにフレームサイズを任せ、レイアウトマネージャーはプラットフォームの依存関係やコンポーネントサイズに影響を与えるその他の要因にうまく適応できるためです。 構文 p

  2. JavaでのsetBounds()メソッドの使用は何ですか?

    レイアウト マネージャー 追加されたコンポーネントの位置とサイズを自動的に決定するために使用されます。レイアウトマネージャーがない場合は、コンポーネントの位置とサイズを手動で設定する必要があります。 setBounds() このような状況では、メソッドを使用して位置とサイズを設定します。コンポーネントの位置とサイズを手動で指定するには、フレームのレイアウトマネージャーを nullにすることができます。 。 setBounds() setBounds() メソッドには4つの引数が必要です。最初の2つの引数は、x座標とy座標です。 左上の コーナー コンポーネントの3番目の引数は幅です コ