ホームページ  >  記事  >  親クラスと子クラスのオーバーロードされたメソッドを呼び出すための Java ベスト プラクティス

親クラスと子クラスのオーバーロードされたメソッドを呼び出すための Java ベスト プラクティス

王林
王林転載
2024-02-09 11:30:09569ブラウズ

php エディタ Zimo は、親クラスとサブクラスのオーバーロードされたメソッドを呼び出す Java プログラミングのベスト プラクティスを提供します。 Java では、継承はオブジェクト指向プログラミングの重要な概念であり、サブクラスが親クラスのプロパティとメソッドを継承できるようにします。メソッドのオーバーロードは、親クラスとサブクラスの両方で同じ名前のメソッドが定義されている場合に発生します。この場合、プログラムの正確性と保守性を確保するために、親クラスとサブクラスのオーバーロードされたメソッドを正しく呼び出す方法に注意を払う必要があります。この記事では、Java プログラミングにもっと慣れられるよう、親クラスとサブクラスのオーバーロードされたメソッドを呼び出すためのベスト プラクティスを詳しく紹介します。

質問の内容

親クラスとサブクラスの両方によってオーバーロードされているメソッドを呼び出す最良の方法は何ですか? 例えば。親子クラスがあるとしましょう

リーリー

両方をオーバーロードするメソッドを作成したいです

リーリー

親または子を作成し、methodcall メソッドを呼び出すメソッドを作成しました

リーリー

これは常に親メソッドを呼び出すようですが、オブジェクトを子オブジェクトに明示的にキャストせずに子メソッドを呼び出すにはどうすればよいですか?

解決策

私の意見では、スーパークラス parentchild に、methodcall() というメソッドを作成する必要があります。これを次のように書き換えます。 :

リーリー

クラス

内 リーリー

次に、次のように呼び出しますmethodcall

private class parent{
        public parent() {
        }
    }
    
    private class child extends parent{
        string name;

        public child(string name) {
            this.name = name;
        }
    }

メソッドのシグネチャは、その名前とパラメータ リストによって決まります。これは、methodcall(parent)methodcall(client) が異なることを意味します。

あなたが望むのは過負荷ではなく、圧倒的です。コード内の child のメソッドにアノテーション @override を追加すると、私が何を意味するかわかります。コンパイラはエラーを出します...

クラスの定義を変更しない場合、対応するメソッドを呼び出すために child にキャストする必要があります。ただし、methodcall() があるため、これはまったく機能しません。 は非静的です (または、child. のメンバーとして callmethod()

があります。

または、コードを次のように変更します:

リーリー

次のように使用します:

リーリー

以上が親クラスと子クラスのオーバーロードされたメソッドを呼び出すための Java ベスト プラクティスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。