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

Javaでオーバーライドする際にメソッドのシグネチャを変更できますか?


いいえ、スーパークラスのメソッドをオーバーライドするときは、両方のメソッドが同じ名前、同じパラメーター、同じリターンタイプを持っていることを確認する必要があります。そうでない場合、両方が異なるメソッドとして扱われます。

つまり、署名を変更した場合、スーパークラスのメソッドを実行しようとしても、スーパークラスのメソッドをオーバーライドすることはできません。

理由-署名を変更すると、両方が異なるメソッドと見なされ、スーパークラスメソッドのコピーがサブクラスオブジェクトで使用できるため、実行されます。

class Super {
   void sample(int a, int b) {
      System.out.println("Method of the Super class");
   }
}
public class MethodOverriding extends Super {
   void sample(int a, float b) {
      System.out.println("Method of the Sub class");
   }
   public static void main(String args[]) {
      MethodOverriding obj = new MethodOverriding();
      obj.sample(20, 20);
   }
}

出力

Method of the Super class

  1. 列挙型はJavaの任意のクラスを拡張できますか?

    Javaの列挙(enum)は、定数値のセットを格納するデータ型です。列挙型を使用して、1週間の日数、1年の月数などの固定値を格納できます。 キーワードenumの後に列挙型の名前を-として使用して、列挙型を定義できます。 enum Days {    SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 配列と同様に、列挙型の要素/定数は、上記の例では0から始まる番号を使用して識別されます。日は、次の図に示すように番号を使用して識別されます- 列挙型はクラスに似ており、変数、メソッド、コン

  2. Javaでオーバーライドするメソッド

    オーバーライドとは、サブクラスタイプに固有の動作を定義する機能です。つまり、サブクラスは、その要件に基づいて親クラスのメソッドを実装できます。 オブジェクト指向の用語では、オーバーライドとは、既存のメソッドの機能をオーバーライドすることを意味します。 例 例を見てみましょう。 class Animal {    public void move() {       System.out.println("Animals can move");    } } class Dog extends Ani