1.インターフェースは何ですか。
*インターフェイスは、メソッドのセットであって、インターフェイスメソッドはすべて抽象的です
*あなたが特別な「抽象クラス」としてインターフェイスを置くことができ、インターフェイスメソッドはすべて抽象的です
*
*
*インタフェースを定義する方法で2.java:
クラス:* classキーワードを定義します。
* interfaceキーワードを定義します。インタフェース
*フォーマット:
*パブリックインターフェイスのインターフェイス名{
* //メンバメソッド
*パブリック抽象ボイドdemo01();
*パブリック抽象ボイドdemo02();
*}
インターフェイスpublic抽象メソッドを変更する必要があります*あなたは、書くことはできませんまた、必要に応じて書くことができますが、そこにあることを意味するものではありません書き込みませんなし(私たちは書き込みをお勧めします)
*
* 3.インターフェイスはオブジェクトを作成できませんか?オブジェクトを作成することができ、インターフェースはまた、天然の親として使用されています
*
4. *クラス関係とインターフェイスは、インターフェイス実装する実装クラスと呼ばれる(クラスとクラスの継承関係を、実装は、クラスとインタフェースとの間の関係です)
*
* 5.達成するための方法:道具(キーワードの実装)を拡張(継承キーワード)
インターフェイスを実装* A.クラス、私たちは、このクラスのインタフェースの実装クラスを呼び出します
* B.クラスは、私たちは抽象クラスのサブクラスを呼び出す抽象クラスを継承します
* 6.インターフェイス機能のメンバー:
* A.すべてのパブリック抽象メソッドを変更する必要がありますされています
*
* B.インタフェースのメンバ変数はのpublic static finalで変更する必要があります
*我々は、すべての修飾子が上書かれている以上をお勧めします
インターフェイスのメンバーの機能:
* 1。すべてのメソッドは、パブリック抽象を変更する必要がありますされています
*
* 2インターフェースは、メンバー変数のpublic static finalによって修飾されなければなりません
*我々は、すべての修飾子が上書かれている以上をお勧めします
*一部のインターフェイス機能:
*
* 1.クラスAとのみ単一継承、クラスおよびインタフェース以上のものを達成することができます
*
* 2インターフェースとインターフェースとの間の関係は、継承と呼ばれるが、インターフェイスとインターフェイスは多重継承することができ
*
*フェイス質問:これでJavaサポート多重継承?
* Javaクラスおよび単一継承のみが、複数の層が継承することができます
* Javaインタフェースおよびインタフェースは多重継承することができ
*
複数のインタフェースを達成しながら* 3クラスは、別のクラスを継承します
*擬似コード:
*親クラスのパブリッククラスのサブクラスは、インターフェース1、2 ...インタフェース{延び実装します
* //サブクラスのオブジェクトを作成したいです
親クラスの* // 1.書き換え抽象メソッド(可能性がないかもしれません)
* // 2.すべての抽象メソッド内のすべてのインターフェイスを書き換え
*}
抽象クラスとインタフェースの違い:
*
* 1.抽象クラスは、すべてのサブクラスの共通コンテンツに定義することができます
*
* 2インタフェース定義は、全体継承階層以外の方法であります
多型:[もっと変態]は、物事の複数を形成します
*たとえば、学生は、あなたが学生として見ることができる、あなたは人として見ることができます
*
* 1。継承関係(または実現関係)が存在する必要があります
* 2.そこのメソッドをオーバーライドします(ただし、マルチステートはその意味を失い書き換え)しなければなりません
前提の下で12 * 3、親クラス・オブジェクト参照変数ポイントサブクラスの多形形態
オブジェクト・インプリメンテーション・クラスを指す*インタフェース参照変数
* AbstractBのAA =新しいClassBの();
* =新しい関心とにClassA();
*
*と仮定すると、抽象クラスPerson {
*パブリック抽象ボイド睡眠();
*}
* 1.継承
*クラスの学生は、人を{拡張します
* // 2.書き換え方法
*公共ボイド睡眠(){
* ..
*}
*}
* 3つの形式:
*親クラスのオブジェクト参照変数は、サブクラスを指しています
*学生S =新学生(); //多型ではありません
*人物P =新しい学生(); //多型があります
ポリモーフィックメンバーの親クラスの変数とのみ:(関係を持っています)
* 1.コンパイル時:親クラスを参照してください
* 2.ファイル名を指定して実行時間:親クラスを参照してください
*
*メンバーの方法で多型:
* 1.コンパイル時:親クラスを参照してください
* 2.ファイル名を指定して実行時間:サブクラスを参照してください
*
*概要:関連の変数多型と親のみのメンバー、親クラスのランタイムをサブクラス見るために見て、多状態のコンパイルのメンバー
*
*マルチ状態の利点と欠点:
*
* 1。欠点は:子供は、親クラスに共通のメソッドを呼び出すことができますが、サブクラス特異的な方法を呼び出すことはできません
*
* 2.利点:スケーラビリティの向上プログラム
*ケース:説明マルチ状態の利益とプログラムのスケーラビリティを向上させます
*ケース猫と犬を供給
1.エキス*親(アニマル)
抽象メソッドを書き換えながら* 2。犬や猫は、動物を継承します
*多形フォーム:
* 1.前提:
ワインJiannanchun =
Wuliangye酒B =
C =酒類ワイン
...
ここでは多型の性能があります。Jiannanchun、Wuliangyeは、アルコール酒は、酒のサブクラスであります
私達はちょうど多型である、このワインで、スーパークラスの別のサブクラスを参照することができます -
私たちは、実行時にオブジェクト参照変数ポイントの特定のインスタンスを知ることができません。
* A.継承関係(または実現関係)が存在する必要があります
* B.書き換える方法がなければなりません
* 2.式
*親クラス型変数名=新しいサブクラスのタイプ();
*インターフェイスの種類変数名=新しい実装クラスのタイプ();
*
*マルチ状態の利点と欠点:
* A.唯一、親子クラスのコンテンツがあり呼び出すことができますが、サブクラス固有のコンテンツを呼び出すことはできません
*メンバ変数の多型:また、親がコンパイルを見るために実行している親を参照してください。
*マルチ状態のメンバーは:コンパイラは、親クラス、実行時にサブクラスを見て確認することです
。* Bの利点:プロバイダのスケーラビリティ、コードの再利用性を向上させながら、
*
欠点:(変換計画に*マルチステート溶液)
* 1。アップキャスト:(自動変換)
*ダブルD = 1; // dが印刷されていないが、1.0
*人物P =新しい学生(); //アップキャスト
*動物AN =新しい犬(); //アップキャスト
*
*ダウン2.変換(キャスト)
*のInt I =(int型)1.9; //印刷は、印刷は、私が出ています
*人物P =新しい学生(); //ポリモーフィック
*学生S =(学生)のp; //意気消沈
知識レビュー昨日:
*スーパーやこの資料の内容の役割
*
* 2.概念を書き換える処理
*
* 3.方法は意味が優先されます:親クラスの機能を強化します
*
* 4.抽象メソッドとは何ですか。
*抽象クラスとは何ですか。
*
*抽象クラスの意味が存在しますか?
*
*抽象メソッド抽象クラスの存在意義6.?
*
*補足:この(パラメータ):
*スーパー(パラメータ):単一の原則
*
*
* /
パブリッククラスTestDemo {
パブリック静的無効メイン(文字列[] args){
C C =新しいC();. // 1オープンスペース2. 3.リターンアドレスコンストラクタ
//コンストラクタ:1:スーパー()2:メンバー(割り当てられたデフォルト)を初期化3:メソッド本体後ろ
}
}
クラスA {
INT X = 10; -
パブリックA(){
スーパー();
//メンバを初期化します
showX();
}
ます。public void showX(){
System.out.println(X)
}
}
クラスBが延びます{
パブリックB(){
スーパー();
showX();
}
}
クラスCは、{Bを拡張します
パブリックC(){
スーパー();
//初期化
showX();
}
}
1.私たちはメンバーによって作成されたこれらのオブジェクトを呼び出すようにしているので、我々は、メンバ変数と時間のクラスのメンバメソッドを定義する前に
*
* 2.クラスCZStudent(:学校に通う学生番号、氏名、性別、学校)を定義
修正*静的メンバ変数:例:静的文字列の学校
*このクラスに属する特定のオブジェクトが、学生と共有変数に属していない静的メンバ変数を変更することが
*
*ケース:中国の人間
* name.age、仕事、国籍
*
*概要:静的メンバ変数を変更することが、メモリ内に存在し、静的領域に保存します
*次に、作成したオブジェクトの数に関係なく、すべてのオブジェクトは、データを共有します
*だから我々は、一般的に、クラスのメンバーと呼ばれる静的メンバ変数を修正言います
*
* 3.静的メンバへのアクセスを変更すること:
*メンバ変数:
*オブジェクト名.STATIC修正メンバー変数名は、お勧めできません//
*クラス名.STATIC修正メンバ変数名; //推奨
*メンバー方法:
*オブジェクト名.STATIC修正メソッド名(); //お勧めできません
*クラス名.STATIC修飾メソッド名();
* 4。補足:変更された静的メンバーではなく、お互いの問題への静的メンバのアクセス権を変更
*ライフサイクルの質問:
*修正の静的メンバーが以前発生した----->始皇帝(先祖)
*後期改変非静的メンバは---->私たちの(将来の世代)が表示されます