単一および多重継承
Javaクラスは単一継承ですが、Javaインターフェースはある程度多重継承です
サブクラスの場合、同じメソッドがあり、呼び出しシーケンスは次のとおりです。それ自体で実装されたメソッド>親クラスから継承されたメソッド>継承されたインターフェース実装
クラスメンバーとメソッドの可視性とスコープ
クラスの可視性:
公衆 | 民間 | デフォルト | 保護された |
パブリック、すべてのクラスが表示されます | 現在のクラスに表示されます | このパッケージは表示されますが、他のサブクラスは表示されません | このパッケージに表示、サブクラス(他のパッケージのサブクラスを含む)に表示 |
継承:
1.このパッケージサブクラスは、プライベートに変更されたメンバーを除き、親クラスを継承できます
2.他のサブクラスは、親クラスのパブリックおよび保護されたメンバーのみを継承できます
3.このパッケージサブクラスは、プライベート変更メソッドを除き、親クラスを継承できます
4.他のサブクラスは、親クラスのpublicおよびprotectedの変更されたメソッドのみを継承できます
オーバーロードオーバーロード、オーバーライドのオーバーライド、上書きの上書き
1.オーバーロード:サブクラスは親クラスの同じ名前のメソッドを継承し、同じ名前のパラメーターリストの異なるメソッドを宣言します。
2.オーバーライド:サブクラスは親クラスのパラメーターのないメソッドを継承し、サブクラスには同じ名前のパラメーターのないメソッドがあり、これはオーバーライドと呼ばれます
3. Rewrite overwrite:現在のクラスに同じ名前のメソッドが複数ありますが、パラメーターリストが異なります
4. 関数のシグネチャ:メソッド名とパラメーターリスト
変数と関数のランタイムバインディングルール
公開 クラスの父{ public String aa = "Father" ; } パブリック クラス Son は、Father { public String aa = "Son"を拡張します。 public static void main(String [] args){ 父親父 = 新しい息子(); System.out.println(father.aa); 息子の息子 = 新しい息子(); System.out.println(son.aa); } }
演算結果:
お父さん
息子
変数の初期化
クラスメンバー変数はデフォルトで0、nullなどに初期化されますが、ローカル変数は初期化されません