java學習--基礎知識進階第二天--筆記

來源:互聯網
上載者:User

標籤:類方法   類重寫   訪問   super關鍵字   由來   注意   需要   java學習   成員   

今日內容
繼承
匿名對象和final關鍵字
抽象類別

繼承
繼承的概述:
現實世界中的繼承是兒子繼承父輩的財產
Java語言中的繼承使類與類之間產生了關係(子父類),子類可以繼承父類的非私人的成員,(私人成員不能被繼承、構造方法不能被繼承也不能被重寫,可以被子類調用)

繼承體系的由來:
多個類擁有共同的成員變數和成員方法,共同的部分向上抽取到父類中,然後讓多個類去繼承父類,就形成了繼承體系

繼承的格式:
class 子類 extends 父類{
}

註:需要使用到extends關鍵字

繼承的特點:
(1)Java中的類只支援單繼承,不支援多繼承
class A{}
class B{}
class C extends A,B{}// 錯誤的,這是多繼承
(2)Java中的類支援多層繼承
class A{}
class B extends A{}
class C extends B{}
(3)子類和父類是一個相對的概念
(4)一個類可以被多個類繼承
class A{}
class B extends A{}
class C extends A{}

繼承中成員變數的特點:
遵循是就近原則:誰離我近就使用誰
繼承中成員方法的特點:
遵循的是就近原則
子類中沒有這個方法,就使用父類中的方法
如果子類中重寫了這個方法,就使用子類重寫之後的方法


this和super關鍵字:
this:代表的是當前對象的引用
super:代表的是父類的那片空間

this:
(1)當局部變數和成員變數同名時,通過this.的方式標識這是成員變數
(2)調用本類中的成員變數和成員方法
(3)在構造方法中第一行this(參數列表)訪問本類中的其他構造方法
super:
(1)在類中調用父類中的成員變數和成員方法
(2)在構造方法中第一行super(參數列表)調用父類的構造方法

繼承中構造方法的執行順序:
先執行父類的構造方法,再執行子類的構造方法

每一個構造方法的第一行預設有一個super(),它調用的是父類的空參構造方法
如果手動給出了this(參數)或者super(參數)這樣的代碼,手動調用本類中的其他構造方法或者父類的構造方法,預設的super()就沒有了

方法重寫(Override)和重載(Overload)的區別
重載:在一個類中,方法名相同,參數列表不同(個數不同、類型不同、順序不同)的方法,和其他(傳回值)的無關
重寫:在兩個類(子父類)中,子類的方法對父類中繼承的方法進行了重新實現的過程,方法的聲明一般不變化

重寫的注意事項:
父類私人的方法不能被重寫
父類的構造方法不能被重寫

兩小
子類重寫的方法的傳回值類型小於等於父類方法的傳回值類型
子類重寫的方法拋出的異常要小於等於(少於等於)父類方法拋出的異常
兩同
方法名相同
參數列表相同
一大
子類重寫的方法的許可權大於等於父類方法的許可權
public>protected>預設>private

繼承的優缺點
優點:
提高代碼的複用性
提高代碼的可維護性
缺點:
耦合性增強

匿名對象和final關鍵字
匿名對象
Student s = new Student();
new Student();// 匿名對象

運用情境:
當對象只使用一次的時候

(1)只調用一次方法的情況
new Student().study();
(2)調用方法時當做方法的實參傳遞
method(new Student());
(3)當做方法的傳回值
public static Student method(Student s) {
return new Student();
}

final關鍵字
final是最終的意思,可以修飾類、方法和變數

final修飾類,該類不能被繼承
final修飾方法,該方法不能被重寫
final修飾變數,該變數不能被重新賦值,變成了常量

抽象類別
抽象類別的由來
多個類有共性的內容,將共性的內容向上抽取,得到父類,具體的子類的功能是具體的,但是在父類中沒法明確具體的功能
,既然不明確我們就乾脆不寫方法體,而沒有方法體的方法必須使用abstract關鍵字來修飾,這種稱為抽象方法,而有
抽象方法的類必須聲明為抽象類別。

抽象類別的特點:
(1)一個類中如果有抽象方法,該類必須是抽象類別
(2)抽象類別和抽象方法都是用abstract關鍵字修飾的
(3)抽象類別不能建立對象(不能執行個體化)
(4)普通類與抽象類別的關係是繼承關係,抽象類別一般都是父類,普通類一般都是繼承抽象類別
(5)一個類繼承了抽象類別,必須實現抽象類別中的所有抽象方法,否則該類就也必須是抽象類別
(6)抽象類別中可以有非抽象方法

抽象類別中成員的特點:
成員變數
可以有
成員方法
抽象方法,可以有
非抽象方法,可以有
構造方法
有

abstract關鍵字不能和哪些關鍵字共存?
final
private
static


java學習--基礎知識進階第二天--筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.