Javaでの継承

相続

オブジェクト指向のコンピュータープログラミング言語の3つの主要な特性:
継承、カプセル化、およびポリモーフィックな
継承:つまり、サブクラスは親クラスの構築メソッドを除くすべてを継承します。これにより、コードの再利用率が向上します。
実装構文は次のとおりです。

   class 子类  **extend**  父类{
   //子类方法
   } 

継承の注意と特徴:

  • extendsを使用し、親クラス指定ます。

  • Javaのサブクラスは1つの親クラスしか継承できません。Javaは単一継承またはマルチレベル継承です。(そしてC ++ / Pythonなどの言語は多重継承をサポートしています)。

  • サブクラスは、親クラスのすべてのパブリックフィールドとメソッドを継承します。

  • 親クラスのプライベートフィールドとメソッドは、サブクラスではアクセスできません。

  • サブクラスのインスタンスには、親クラスのインスタンスも含まれます。superキーワードを使用して、親クラスのインスタンスへの参照を取得できます
     。Super。Memberメソッド->親クラスのメンバーメソッド
     Superを呼び出します。メンバープロパティ->親クラスを呼び出して元のクラスに戻します属性
     スーパー(パラメーター)->親クラスのコンストラクターを呼び出します(最初の行に配置する必要があります

  • fianlによって変更されたシールクラスは継承できません

  • Javaのフィールドとメソッドに対する4種類のアクセス権:(アクセス権は上から下に減少し
     ますpublic:
     保護されクラスの内部と外部の両方へのアクセス:異なるパッケージのクラスとサブクラスの内部、および同じパッケージの同じクラスクラスにアクセスできますが、他のクラスは
     デフォルトにアクセスできません(パッケージアクセス許可、通常はデフォルト):クラス内のクラスと同じパッケージはアクセスできますが、他のクラスは
     プライベートにアクセスできません:クラスのみがアクセスでき、他のクラスはアクセスできません

  • Javaでサブクラスオブジェクトをインスタンス化する場合、静的コードブロックは一度しか初期化できません。
     1.つまり、親クラスと現在のクラスの静的コードブロックが古く読み込まれていない場合、実行順序は次のとおりです。
       親クラスの静的初期化ブロック->子クラスの静的初期化ブロック->親クラスの非静的初期化ブロック->親クラスの構築メソッド->サブクラスの非静的初期化ブロック->サブクラスの構築方法
     2.親クラスの静的コードブロックと現在のクラスが読み込まれている場合、実行順序は次のとおりです。
       親クラス非静的初期化ブロック->親クラスコンストラクター->サブクラスの非静的初期化ブロック->サブクラスコンストラクター(静的コードブロックは読み込まれません)

public class Parent {
    static {
        System.out.println("父类静态初始化块");
    }
    {
        System.out.println("父类非静态初始化块");
    }
    public Parent() {
        System.out.println("父类构造方法");
    }
    //方法与类名同名
    public int Parent() {
        return 0;
    }
    public static void main(String... args) {
        //第一次创建时类还没有被加载,会执行静态初始化块
        Child c = new Child();
        System.out.println();
        //第二次创建时类已经被加载,只执行非静态初始化块与构造方法
        Child d = new Child();
    }
}
class Child extends Parent {
    public Child() {
        System.out.println("子类构造方法");
    }
    static {
        System.out.println("子类静态初始化块");
    }
    {
        System.out.println("子类非静态初始化块");
    }
}
运行结果:
父类静态初始化块
子类静态初始化块
父类非静态初始化块
父类构造方法
子类非静态初始化块
子类构造方法

父类非静态初始化块
父类构造方法
子类非静态初始化块
子类构造方法

Niuke.comの関連質問

元の記事5件を公開 賞賛された7件 訪問数275

おすすめ

転載: blog.csdn.net/qq_45611822/article/details/102989656