関係[投稿] Javaの多型を書き換えるし、過負荷と

関係はJavaで書き直し、過負荷をとの多型

免責事項:この記事は従って、ブロガーオリジナル記事です。 CC 4.0 BY-SAの 著作権契約を、再現し、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/qq_34383019/article/details/100550142

書き換え(上書き)

書き換えは、親クラスのサブクラスを指し再書き込みへのアクセスを許可することができ、それらが同じ名前を持つ、同じパラメータ、同じ値を返しますが、内容は同じではありませんが、新しいサブクラスは、元の親クラスを上書きします方法。

過負荷(過負荷)

同じクラスの過負荷、同じメソッド名、異なるパラメータ。同じ名前を持つようにA方式の異なるパラメータをリロードと呼ばれています。

オーバーロードVSリライト

書き換えルール:

1、親クラスのメンバーはそのサブクラスを書き換えるために発行することができます

2、サブクラスのメソッドのアクセス修飾子は、親クラスのアクセス修飾子(パブリック>保護>デフォルト>民間)よりも大きくなければなりません。

この方法は、プライベートと最終的に宣言する以外は同じパッケージ内3、サブクラスとスーパークラスは、そのサブクラスは、すべての親クラスをオーバーライドすることができます。

4、サブクラスやスーパークラスが同じパッケージではありません、そして唯一の親クラスをオーバーライドすることができ、サブクラスが非最終publicまたはprotectedメソッドがそうであるように宣言しました。

5、メソッドの最後の文をオーバーライドすることはできません。

図6は、静的メソッドを書き換えることができないとして宣言され、やはり宣言することができます。

図7に示すように、サブクラスメソッド、メソッド名、戻り値のリストと同じパラメータがメソッドを継承しなければなりません

8、施工方法をオーバーライドすることはできません。

あなたがメソッドを継承することができない場合は、図9に示すように、このメソッドをオーバーライドすることはできません。

書き換え例:

public class Cat {
    public static void main(String[] args) {
        Cat cat = new Jack();
        cat.name();
    }

    public void name(){
        System.out.println("cat");
    }
}

class Jack extends Cat{

    public void name(){
        System.out.println("jack");
    }
}

オーバーロードのルール:

図1に示すように、この方法は、過負荷パラメータリスト(パラメータの数か、同じタイプ)を変更しなければなりません。

図2に示すように、この方法は、過負荷戻り型を変化させることができます。

図3に示すように、この方法は、オーバーロードされたアクセス修飾子を変化させることができます。

4、オーバーロードされたメソッドは、新規またはより広範なチェック例外を宣言することができます。

5、または方法は、同じクラスのサブクラスでオーバーライドすることができます。

図6は、戻り値の標準のタイプは、オーバーロードされた関数を区別しないように。

オーバーロードされます例:


public class Cat {

    public static void main(String[] args) {
        Cat cat = new Cat ();
        cat.name();
        cat.name("Jack");
    }

    public void name(){
        System.out.println("cat");
    }

    public void name(String newName){
        System.out.println(newName);
    }
}

重い負荷を有し、かつ上記書き換え、我々はそれ多型ダウンして何を見てする必要がありますか?同様にそれと重い負荷とどのような関係の書き換えの間のような?

ポリモーフィズム

多型の概念は、同様の動作が異なるオブジェクトに適用されて、異なる解釈を有する異なる実行結果を生成することができます。

あなたが定義するには、この考え方に従えば、それは国家のマルチ状態動作する必要があります。

ポリモーフィズムを実現し、それは三つの条件が必要です。

クラスまたはインタフェースを継承している1、。

2、サブクラスは親クラスのメソッドをオーバーライドします

図3に示すように、オブジェクトのサブクラスを指す親クラスへの参照。

多くの場合、ほとんどの人は、動的にも、動的多型と静的ポリモーフィズムに分かれていると思います。彼は、特定のメソッド呼び出しは、コンパイル時に、この引数の動的な静的は、私が過負荷状態にし、多型の事実は無関係であることを好むかを決定する必要があるため、静的ポリモーフィズムと考えオーバーロードされます。私は、プロパティのマルチ状態動作する必要があり、Javaの書き換えが多型表現だと思います。

おすすめ

転載: www.cnblogs.com/jinanxiaolaohu/p/11970038.html
おすすめ