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
-
列挙型はJavaの任意のクラスを拡張できますか?
Javaの列挙(enum)は、定数値のセットを格納するデータ型です。列挙型を使用して、1週間の日数、1年の月数などの固定値を格納できます。 キーワードenumの後に列挙型の名前を-として使用して、列挙型を定義できます。 enum Days { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } 配列と同様に、列挙型の要素/定数は、上記の例では0から始まる番号を使用して識別されます。日は、次の図に示すように番号を使用して識別されます- 列挙型はクラスに似ており、変数、メソッド、コン
-
Javaでオーバーライドするメソッド
オーバーライドとは、サブクラスタイプに固有の動作を定義する機能です。つまり、サブクラスは、その要件に基づいて親クラスのメソッドを実装できます。 オブジェクト指向の用語では、オーバーライドとは、既存のメソッドの機能をオーバーライドすることを意味します。 例 例を見てみましょう。 class Animal { public void move() { System.out.println("Animals can move"); } } class Dog extends Ani