オーバーロードとの違いをオーバーライドします。オーバーロードメソッドは、戻り値の型を変更できますか?

過負荷は、意味が過負荷になっています

書き換えられた報道のためにオーバーライドします。

過負荷、過負荷は、同じクラスの複数の同じメソッドの名前を表し、これらの方法のパラメータリスト(すなわち、異なる数またはパラメータの種類)を変えます。

書き換えオーバーライド表現サブクラスは、正確に相当するメソッド定義サブクラスを、呼び出し、このメソッドを呼び出すときサブクラスによって作成されたオブジェクトの同じインスタンスである方法およびパラメータの親クラスの名前にすることができ親クラスの定義は、多型の現れであるオブジェクト指向プログラミングをカバーすることをまったく同じ方法。

親クラスのサブクラスではカバーした場合、唯一の親よりも少ない例外を投げることができる、または親クラスがサブクラスは、親クラスの問題の一部を解決することができるので、クラスは父よりも小さくすることはできません、異常な子によってスローされた例外をスローされますより多くの問題があります。

アクセスサブクラスのメソッドは、親クラスの大きいより小さくすることはできません。

親クラスがプライベートタイプの場合、サブクラスはカバレッジが存在する限定されるものではなく、サブクラスに対応する新しいアプローチを追加します。

オーバーロードの方法は、問題の戻り値の型を変更できるかどうかについては、あなたは彼らがやろうとしている聞きしたいものに依存?質問は非常にあいまいでした。いくつかのオーバーロードメソッドのパラメータリストが同一でない場合、彼らは帰国はもちろんの同じタイプではないかもしれないです。

二つの方法の引数リストとまったく同じ場合は、それらが異なるオーバーロードの過負荷を達成するために、戻り値を作ることができるかどうか:しかし、私は、あなたが質問をしたいと思います。

これは受け入れられません、

私たちは時々、変数はその戻り結果を気にしない結果を返す定義することはできませんメソッドを呼び出すので、私たちは、問題を説明するために背理法を使用することができます

我々は(key)メソッドmap.removeを呼び出すときにremoveメソッドが値を返しますが、我々は多くの場合、返された結果で定義された変数を受け取りませんが、例えば、クラスがこの時間仮説でまったく同じ名前とパラメータリストの二つの方法がありますそれは戻り値の結果の種類によって判断することができないので、ちょうど戻り値の異なるタイプは、Javaプログラマは、彼らが呼び出したいとしている方法を決定することはできません。

オーバーライドは、あなたが知っているリテラルから、それは方法をカバーし、カバーするために翻訳され、さまざまな効果を達成するためにそれらを書き換えることができます。

私たちにとって、最も身近なインターフェイスメソッドのカバレッジを達成することである、一般的なインタフェースは、メソッドのちょうど声明で、我々は実現するとき、私たちは、インタフェースの実装で宣言されたすべてのメソッドを必要としています。

この典型的な使用に加えて、我々はまた、継承では、サブクラスで親クラスのメソッドをカバーすることができます。報道では、次の点に注意を払います:

オーバーライド機能

図1に示すように、マークを被覆する方法は、完全一致とマーク方法はカバレッジの効果を達成するために覆われなければなりません。

2、メソッドの戻り値が覆わ一貫したカバレッジ及び方法を返さなければなりません。

3一貫した異常異常、スロー及びスロー被覆方法を覆う方法であること、またはサブクラスでなければなりません。

図4に示すように、この方法は、プライベート、またはサブクラスで覆うことができないその唯一の新しい方法を定義し、上書きされません。

過負荷が私たちに馴染みがあり、オーバーロードとして翻訳することができ、それはこれらのメソッドを区別するために、異なる入力パラメータで定義されたときに我々は方法の同じ名前のいくつかを定義することができることを意味し、その後、呼び出し、VMは異なるパラメータに基づいて行われますスタイルは、適切な方法を選択するために実行します。ヘビーデューティーな使用の際には、次の点に注意を払う必要があります。

過負荷特性

唯一異なるパラメーター・スタイルによる大型の使用で1、。例えば、パラメータは、異なるパラメータの数、異なるシーケンス・パラメータ(もちろん、同じメソッド内のパラメータのいくつかの種類が異なっている必要があり、例えば、楽しい(INT、フロートであってもよい)の異なるタイプではなく、楽しい(int型、intとして));

2、ないアクセス、戻り値の型、過負荷に例外がスローされたことができます。

メソッドの3、例外の種類と数は、オーバーロードには影響しません。

アクセスは、親クラスのメソッドがpriavteである場合に定義されている場合、図4に示すように、継承、それは、サブクラスでオーバーロードすることができない、唯一の重量に達することなく、新たなメソッドを定義負荷効果。

要約:

オーバーライド(カバーをオーバーライド)(親クラスとサブクラスに発生する)
1、メソッド名、引数、同じ値を返します。
2、サブクラスのメソッドは、親クラスのメソッドへのアクセスを減らすことができません。
3、サブクラスのメソッドが親クラスのメソッドよりも多くの例外をスローすることはできません(メソッドサブクラスが、例外をスローしない場合があります)。
図4は、親と子のクラスの間に存在します。
最終的な方法を書き換えることができないように、図5に示すように、定義されています。

過負荷(過負荷、過負荷)(同じ方法で発生する)
1、パラメータの種類、数は、少なくとも1つの配列は同一ではありません。
2は、戻り値のみ異なるメソッド名をオーバーライドすることはできません。

おすすめ

転載: blog.csdn.net/weixin_44517301/article/details/93131834