java基础-day08-面向对象(三) this关键字、继承、static关键字
this 關(guān)鍵字
1、當(dāng) 成員變量 名 和 局部變量 相同時(shí),優(yōu)先使用 局部變量,通過 this 使用 成員變量。
public class Test1 {public static void main(String[] args) {Person p = new Person("tom");System.out.println(p.name); //tom} } class Person{String name;public Person() {}public Person(String name) {this.name = name;} }2、this 用于 構(gòu)造方法間的調(diào)用。
注:this 在構(gòu)造方法 里 使用 時(shí),必須 放在 第一句
繼承
繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為。
繼承的特點(diǎn):1、使用 extends 關(guān)鍵字
2、相當(dāng)于 子類 把 父類 的功能 復(fù)制了 一份
3、java 只支持 單繼承
4、繼承可以 傳遞 (爺爺 兒子 孫子 的關(guān)系)
5、不能 繼承 父類 的 私有成員
6、繼承 多 用于 功能 的 修改,子類 可以 擁有 父類 的 功能 的同時(shí),進(jìn)行 功能拓展
7、繼承 是 is a 的關(guān)系,是子類和父類發(fā)生了強(qiáng)制的依賴關(guān)系–強(qiáng)耦合
super 關(guān)鍵字
1、通過 super 關(guān)鍵字 可以 使用 父類 的 內(nèi)容
2、super 代表 父類 的 一個(gè) 引用
3、在 構(gòu)造方法中 調(diào)用 時(shí),必須 放在 第一條 語(yǔ)句
方法重寫(override)
存在 父類 與 子類 間 的,子類 定義 的 方法 與 父類 定義 的 方法 具有 相同 的 方法名、返回值類型、參數(shù)列表
1、繼承 中 成員變量 的 使用
使用 父類 成員時(shí),使用 super 進(jìn)行 調(diào)用
2、繼承 中 成員方法 的 使用
注:當(dāng)實(shí)現(xiàn) 方法重寫 時(shí),子類必須有 權(quán)限 重寫 父類 的 方法 ,子類 重寫方法 權(quán)限 >= 父類 方法 權(quán)限
2、繼承 中 構(gòu)造方法 的 使用
子類 在創(chuàng)建 時(shí) ,會(huì) 自動(dòng) 調(diào)用 父類 的 無(wú)參構(gòu)造方法
在 構(gòu)造方法 的 第一行,都有 一條默認(rèn) 的語(yǔ)句 super()
父類 沒有 無(wú)參構(gòu)造 時(shí),可以使用 super 調(diào)用 父類 其他 的 構(gòu)造方法
注:在 構(gòu)造方法 中 使用 super 時(shí) ,必須 放在 第一條 語(yǔ)句
static 關(guān)鍵字
static 是 java 中 的關(guān)鍵字,用于 修飾 成員 (成員變量 和 成員方法 ,不能 修飾 局部變量)
static 的 特點(diǎn):1、static 能 修飾 成員變量 和 成員方法
2、static 是全局唯一的,全局共享
3、static 隨 類的加載而加載,且優(yōu)先于 對(duì)象加載
4、static 只加載一次,就一直存在,不再開辟 新的空間
5、static 可以直接 被 類名 調(diào)用
6、靜態(tài) 只能 調(diào)用 靜態(tài),非靜態(tài) 可以 隨意 調(diào)用
7、static 不能 和 this 或者 super 共用,因?yàn)?有 static 時(shí) 可能還沒有 對(duì)象
靜態(tài) 方法內(nèi)存圖
靜態(tài) 只能 調(diào)用 靜態(tài)(變量 或 方法),非 靜態(tài) 可以 訪問 靜態(tài)或非靜態(tài)
//測(cè)試 靜態(tài) 的調(diào)用關(guān)系 // 總結(jié):靜態(tài)資源 只能 調(diào)用 靜態(tài)資源,而普通資源 可以 隨意 調(diào)用 public class Test8_Static2 {public static void main(String[] args) {StaticDemo2 s = new StaticDemo2();s.eat();s.coding();} }class StaticDemo2{//提供普通資源int age;public void eat() {// 1、普通資源 可以調(diào)用 靜態(tài)資源 yescoding();System.out.println(name);System.out.println("eat()...");}static String name;static public void coding() {// 2、靜態(tài)資源 不可以 調(diào)用 普通資源 no // eat(); // error // System.out.println(age); //errorSystem.out.println("coding()...");} }靜態(tài)代碼塊
在 成員位置(類內(nèi) 方法外)隨著 類 的 加載 而 加載,先于 對(duì)象 加載,并且 只被 加載一次,一般用于 項(xiàng)目 的初始化
static{…}
總結(jié)
以上是生活随笔為你收集整理的java基础-day08-面向对象(三) this关键字、继承、static关键字的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SqlServer计算2个时间的间隔时间
- 下一篇: YTU 3386 哈希查找2