ホワイトジャーニー10-1

多状態

1.1概念:

多型は、第二のカプセル化、継承、オブジェクト指向の第3の特徴です。
例えば:Studentクラスは、ヒトのクラスを継承し、その後スチューデントオブジェクトは、両方の学生は、ヒトです。

状態は1.2以上を反映しています

コードのフォーマット:

父类引用变量指向子类对象,Student对象可以赋值给Student也可以赋值给Human
父类类型 变量名 = new 子类类型();
Human s = new Student();

ポリモーフィック前提:それは継承されなければならない関係を(達成します)

これは、変数の130の以上の加盟国が特徴

同じ名前のメンバ変数は、子供に親クラスを表示された場合
、親クラスのメンバ変数への参照があるかどうか、そして、コンパイルに失敗していない場合:コンパイル時に
実行時間を:で親クラスのメンバ変数を呼び出す
一言で言えば:コンパイルし、すべての実行します左に見えます

特長1.4を超える状態メンバメソッド

同じ名前のメンバーが子供に親クラスのように表示された場合、
コンパイル時:親クラスのメソッドのメンバーへの参照があるかどうか、そして、コンパイルに失敗していない場合は
、ランタイムを:メソッドが呼び出され、サブクラスがオーバーライドされた後、
一言で言えばをルックをコンパイル左、実行するために右側に見ます

遷移状態より1.5

多形転移及びアップキャストに下方遷移
1、アップキャスト:
親クラス参照変数に割り当てられたプロセスサブクラスオブジェクトは、遷移が上向きに、多形変換自体アップです。
フォーマット:

父类类型 变量名 = new 子类类型();

図2に示すように、ダウンキャスト:
遷移が上方サブクラスオブジェクトキャストはサブクラスに、親クラスを使用することができた変数の参照を参照し、このプロセスは、意気消沈です。または直接意気消沈ない親クラスオブジェクトのサブクラスを作成します。
注意:場合には多型は、発生ClassCastExceptionが強い親クラスのサブクラスになっていない場合。
強いターンの前に判断するのinstanceof使用は、ClassCastExceptionを回避することが可能
なフォーマット:

父类类型 变量名 = new 子类类型();
子类类型 变量名 = (子类类型)父类的变量;

160の以上の状態の利点と欠点

利点:コードのスケーラビリティ向上、サブクラスタイプを隠す
それ以外の場合は、サブクラスのメンバーに特有のではないでしょう、ない限りダウンキャスト:デメリット

1.7キーワードのinstanceof

フォーマット:

对象名 instanceof 类型

処置:オブジェクトが指定されたクラスに属しているかどうかを判断します

可能性のinstanceofを使用し

  • コンパイルに失敗しました:
    • 比較における非多型、他のサブクラスオブジェクト継承階層
    • 比較するオブジェクトよりも、クラス継承階層
  • 偽:ポリモーフィック他のサブクラスのオブジェクトの継承階層を比較して
  • 真:
    • オブジェクト・クラス自体と比較して、非多型
    • 親と比較して非多型、オブジェクト
    • マルチステート、オブジェクト自体と比較して、親クラスまたはクラス

おすすめ

転載: www.cnblogs.com/demonycw/p/11329334.html
おすすめ