1: サブクラスの参照を親クラスのオブジェクトに渡すことは許可されていますが、親クラスから継承されていないサブクラスのメンバーは表示されなくなります。
例:
Bus bus=new Bus(); Car car=bus;
ただし、car インスタンスは、p の乗客数など、バス内の非継承フィールドを参照できません。
2: this と super
this は現在のクラスの変数またはメソッドを参照し、super はその直接の親クラスの変数またはメソッドを参照します。現在のオブジェクト
3: ポリモーフィズム
同じ名前は複数の実装状態を持つことができ、同じクラス内で、同じ名前と異なるパラメータ リストを持つメソッドを持つことができます。サブクラスは、同じ親クラス、同じ名前の変数やメソッドを持つこともできます。
1) オーバーライド。サブクラスが同じ名前の親クラスのパラメーターなし関数を継承する場合、サブクラスの新しく作成されたメソッドが親クラスのメソッドをオーバーライドします (戻り値の型は同じである必要があります)
2) オーバーロードは、親クラスから同じ名前のパラメータ化された関数を継承し、メソッドのパラメータが異なる場合にオーバーロードされて呼び出され、メソッドが独自の特性を持ちます。
3) 現在のクラスと同じ名前のメソッドを上書きします。同じクラス内に同じ名前のメソッドが複数存在する可能性があります。どれを使用するかは、渡されるパラメータの数と種類によって決まります。それらの方法。
上書きとオーバーロードは親クラスに対して行われ、書き換えはサブクラスに対して行われます。
4: 抽象クラスの定義
抽象クラスは、独自のデータ メンバー、非抽象メンバー メソッド、または抽象メソッドを持つことができます。抽象メソッドのみです。関数はありません。関数定義部分のボディ。
サブクラスが抽象クラスを継承する場合、すべての抽象メソッドを実装する必要があります。
5: インターフェース
Java は単一継承のみをサポートしていますが、多重継承を実現するためにインターフェースが設計されています。クラスは直接の親クラスを 1 つだけ持つことができますが、複数のインターフェイスを実装できます。
インターフェイス内のメソッドにはパラメータ リストと戻り値の型を含めることができますが、メソッド本体は含めません。
インターフェイスにはフィールドを含めることができますが、それらは静的かつ最終的に宣言されます
インターフェイス内のフィールドはインターフェイスの静的ストレージ領域にのみ保存でき、インターフェイスには属しません. .
インターフェイス内のメソッドは public です。
インターフェイスを拡張して新しいインターフェイスを生成するには、キーワード extends を使用します。インターフェイスを実装するには、implements を使用します。
Java インターフェイスは抽象およびパブリックのみにできます。Java インターフェイスは Java 抽象クラスよりも抽象的です。
6: インターフェイスと抽象クラスの違い
1) 抽象クラスは実装メソッドを提供できますが、インターフェイスは提供できません。抽象クラスに新しいメソッドを追加すると、そのすべてのサブクラスがこのメソッドを一度に取得しますが、インターフェイスの場合は、このインターフェイスを実装するすべてのクラスがこのメソッドを実装する必要があります。
2) 抽象クラスは 1 つのインターフェイスのみを継承できますが、複数のインターフェイスを実装できます。
「デフォルト適応モード」: Java インターフェースが一番上にあり、その後に抽象クラスが続きます。
3) インターフェイスは、クラスまたはインターフェイスごとにネストできます。
7: 静的クラス
は、静的メソッド、静的変数、および静的コード ブロックを定義するクラスです。静的クラスはインスタンス化できず、すべてのメンバーは静的です。これは、このタイプのオブジェクトを作成せずにこのメソッドを使用できることをコンパイラーに伝えることを意味します。静的クラスは通常、操作する前にインスタンス化する必要があります。静的クラスは実行時にメモリにロードされるため、初期化する必要がなく、インスタンスがないため、クラス内で使用できません。
以上がJavaでオブジェクト指向プログラミングを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。