Java Foundation 006 ---クラス、インターフェース、オブジェクト

単一および多重継承

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などに初期化されますが、ローカル変数は初期化されません

 

おすすめ

転載: www.cnblogs.com/sniffs/p/12750981.html