相続に関する質問
- 継承後のコンストラクタサブクラス、実行スーパー()または本()唯一の、そして最初の行でなければなりません
書き換えやオーバーロード差分法:
- まず、ルールをオーバーロード:あなたは、異なるパラメータのリストを持っている必要があります。別の戻り値の型を持つことができ、異なるアクセス修飾子を持つことができ、さまざまな例外を投げることができます
- 書き換えがそうでないメソッドがオーバーライドされると、パラメータリストは、それ以外の場合は書き換えと呼ばれることができなかった、まったく同じでなければなりません。
- 戻り値の型は常に、それ以外の場合は、書き換えと呼ばれることができませんでしたオーバーライドされる方法と同じでなければなりません。
- 制限されたアクセス修飾子アクセス修飾子は、オーバーライドメソッドに等しいより大きくなければなりません。
オーバーライドメソッドはオーバーライドされたメソッドは、このような親クラスのメソッドとして、より広範なチェック例外を宣言されているよりも新しいか、チェック例外をスローしてはなりません宣言するチェック済み例外IOExceptionが、このメソッドをオーバーライドすることができない場合にのみ、例外がスローされますIOExceptionのサブクラス異常、投げることができますチェックされない例外がスローされます
クラス及びインスタンスメソッドとの間の差
クラスメソッドは、
静的メソッドを変更しました。
この方法は、クラスのクラスに属しているので、クラスメソッド本体は、コンテンツ関連オブジェクトクラスを処理できません。
すなわち、クラスメソッドは、その次の制限があります。
- オブジェクトは、変数クラスのメソッドを参照することはできません。
- メソッドは、オブジェクト・クラスのクラス・メソッドを呼び出すことはできません。
- あなたはスーパー、このキーワードクラスのメソッドを使用して調整することはできません。
- クラスメソッドをオーバーライドすることはできません。
インスタンスメソッド
クラスは、オブジェクトの後に作成され、オブジェクトメソッド(オブジェクトメソッド)クラスを呼び出すことができます。
- オブジェクト変数を参照することができる方法の例には、クラス変数が参照されてもよいです。
- この方法の例は、クラスメソッドを呼び出すことができます。
- オブジェクトのメソッドは、スーパーでこのキーワードを使用することができます。
抽象クラス
- 抽象クラスは、直接インスタンス化することはできません
- サブクラスは、抽象クラスは、抽象メソッドのサブクラスをオーバーライドする必要があります継承します
- 抽象メソッドはメソッド本体ではありません
- 通常の方法で抽象クラス
インターフェース
インターフェイスは、jdk1.7とjdk1.8に分かれている
インタフェースの機能:
- すべてのパブリック+の静的抽象メソッドにも記述することなく、デフォルトでは、この組み合わせであり、変更されています。
- インタフェースのみを静的(スタティック)と定数(最終)を持つことができ、デフォルトは、宣言のstatic finalで飾られているかどうか、この組み合わせです。
- インターフェイスのすべての抽象メソッドを実装クラスに書き換える必要があります
- 直接オブジェクトと新しい抽象クラスとインターフェースすることができない、それは新しいサブクラスの方法でインスタンス化する必要があります。
1.7と1.8の違い:
- 1.7缶では抽象メソッドは、通常の方法では、静的メソッドを持ってすることができませんすることはできません
- defaultキーワードを使用して変更することができる1.8通常の方法では、あなたはまた、静的メソッドを持つことができます
チップ
これは、Javaは多重継承をサポートしていないです。しかし、我々は、インターフェースを介して、複数の継承の効果を得ることができます
抽象クラスとインタフェースとの間の差
差別化タイプ | 抽象クラス |
---|---|
プロパティ | 通常の変数 |
サブクラス者通話 | 遺伝性 |
宣言と実装方法 | どちらも、特定のメソッドを宣言するだけで達成することができます |
組織構造 | 復興結果 |
指向機能的役割 | オブジェクト指向 |