您好,登錄后才能下訂單哦!
類class
將一類事物的特征和動作,封裝為屬性和方法(封裝相關數據,方法代碼);
封裝
實例,一個具體的個體(new創建)
可以保存獨立的數據,獨立控制執行指定方法;
引用
保存一個實例的地址
引用特殊值null
局部代碼塊:
在方法中提供一個{}.
局部代碼塊可以提高棧內存的效率,可以提前釋放局部的變量內存。
構造方法
構造代碼塊:會在每一次創建對象時調用,構造代碼塊是先與構造方法執行的
使用方式:直接在類中提供一個{}
新建實例時執行,子類調用父類的無參構造方法
class定義類必須要有構造方法
不定義,默認為無參
構造方法作用:任意
常用方法:賦值
this
1.this.屬性名---本類里的成員變量,當變量名重復時使用
2.this.方法名------本類的方法名
3.This(……)----本類里的構造方法,減少代碼重復
This()只能用在構造方法中的第一行
Overload 方法重載:一個方法有多種參數傳遞方式
同名不同參數,
繼承:
把原有類中的公共的代碼抽取到一個新類中,原有類和新類使用extends關鍵字進行聯。新類稱之為父類,原有類稱之為子類,子類會繼承父類的所有屬性和方法。但是子類只能使用對子類可見的屬性和方法。
JAVA只支持單繼承,只能繼承一個父類,一個父類可以有多個子類
不繼承父類的部分
構造方法
私有成員 private
子類實例
由父類實例和子類實例綁定,整體作為一個實例
調用時,先找子類,再找父類
Overried 方法重寫:在父子類中出現了方法簽名一致的非靜態方法,就稱之為重寫(Override),或者稱之為覆蓋
子類調用父類方法時,父類方法不滿足子類的需求,需要重寫,
必須與父類的返回值與參數一致;
兩同:方法名,參數列表相同
返回值異常兩小:
1.返回值:
如果返回值為基本數據類型,子類的返回值必須和父類相同
如果返回類型為引用數據類型,子類返回值小于等于父類;
2.異常:
子類向上拋出的異常 要小于等于父類;
一大:
訪問修飾符權限;public >protected>default>privade>
子類的訪問修飾符權限必須大于等于父類;
Super
super關鍵字可以調用父類可見的方法和屬性
super()和this()不能共存
1.super.屬性名-----父類里面的成員變量
2.super.方法名---父類的方法名
3.super()/super(參數) ----調用父類的無參構造/可見方法
Super()只能出現在構造方法體第一句
每一個類的構造方法有默認的super();
多態:事物的多種形態
//編譯看左邊,運行看右邊:
編譯時多態:方法重載
運行時多態:向上造型,方法重寫
一致的類型,所有子類型實例,都可以被當做一致的父類型來處理
向上轉型:
定義一個父類的變量,用以引用子類的地址空間
只能調用父類中定義的方法
向下轉型:
強制轉換,需要保證轉型的安全
Instanceof 判斷運行期的類型
對真實類型及其父類型判斷,都得到true
抽象類abstract
半成品的類,一個未完成的類
抽象方法只有方法定義,沒有方法代碼
需要用abstract關鍵詞定義
1.作為通用方法在父類中定義;
2.要求子類必須完成該方法;
3.抽象類不能實例化,未完成時半成品;具體子類可以創建實例;
抽象要點
被abstract修飾的類稱之為抽象類,被abstract修飾的方法稱之為抽象方法
一個類中如果有抽象方法,這個類必須為抽象類
抽象類不能實例化!!!
抽象類必須要有一個子類,子類可以實現抽象類中的抽象方法.如果子類實現類的抽象方法,那么久可以通過向上造型來使用抽象類.
final不能修飾抽象類,final修飾的類為最終類不能被繼承,抽象類必須要被繼承
抽象類可以寫構造方法的
抽象類可以提供普通方法
抽象類中的抽象方法可以重載
抽象類中抽象方法不能使用private修飾,抽象方法必須被子類實現
抽象方法不能被static修飾,靜態方法可以直接使用類名調用,在抽象類中沒有意義.
受java的單繼承的影響,抽象類不能夠同時繼承多個類
接口interface
接口是功能的集合,接口是比抽象類更抽象的"類",在JDK1.8之前接口中只能放抽象方法.
接口是特殊的類
接口是結構設計共計,用來解耦合,隔離實現
語法:
Interface 代替class關鍵詞
implements代替extends關鍵詞
接口中只能定義:
公開的常量
//接口中是可以的定義變量,,
Public static finalinta=5;
//變量默認修飾符publicstaticfinal,實際上是一個常量
公開的抽象方法
Public abstract void show();//接口中的方法默認修飾符public abstract
接口不能實例化,必須在implements中實現接口中的抽象方法
接口中的方法可以重載
公開的內部類,內部接口
接口中沒有構造方法
類可以同時實現多個接口:
Class A extends Object implements x,y,z{}
接口之間繼承,不用實現關鍵詞(可以繼承多個接口),用extends
Interface A extends x,y,z{
}
一個類可以實現多個接口,子接口中可以有相同的方法(接口中只有方法名沒有具體的實現代碼)
java中接口是網狀
java中繼承是樹狀結構
java放棄了對接口的編譯檢查
Javap xxx.calss可以反編譯
![](https://cache.yisu.com/upload/information/20200311/58/226982.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。