1. 程式人生 > >java繼承,抽象類

java繼承,抽象類

(1)繼承
擴充套件父類的功能
java中使用extends關鍵字完成繼承
class 子類 extends 父類{ }

限制:在java中只允許單繼承;子類不能直接訪問父類的私有成員,set和get方法訪問


(2)子類物件的例項化

1、在子類物件例項化之前,必須先呼叫父類的構造方法,之後呼叫子類構造方法


(3)方法的重寫
1、在繼承中,也存在著重新的概念,其實就是子類定義了和父類同名的方法
2、定義:方法名稱相同,返回值型別相同,引數也相同
3、重寫限制:被子類重寫的方法不能擁有比父類方法更加嚴格的訪問許可權
4、與過載區別:
過載:方法名稱相同,引數的型別和個數不同,對許可權沒有要求,發生在一個類中

4、訪問許可權:private<default<public


(4)super關鍵字
強行呼叫父類的方法的執行
super不一定在重寫中使用,也可以表示那些方法從父類中繼承而來的
(5)final關鍵字
1、final能宣告類、方法、屬性:
使用final宣告的類不能被繼承
使用final宣告的方法不能被重寫

使用final宣告的變數成常量,常量是不可以被修改的


(6)抽象類
1、包含一個抽象方法的類就是抽象類
抽象方法:宣告而未被實現的方法,抽象方法必須使用abstract關鍵字宣告
2、抽象類被子類繼承,子類(如果不是抽象類)必須重寫抽象類中的所有抽象方法
3、定義:abstract class ,類名{  屬性
方法 抽象方法
}

4、抽象類不能直接例項化,要通過其子類進行例項化


(7)介面
1、介面是java中最重要的概念,介面可以理解為一種特殊的類,裡面全部是由全域性變數和公共的抽象方法所組成
2、介面的格式:interface 介面名稱{
全域性變數
抽象方法
}
3、介面的實現也必須通過子類,使用關鍵字implements,而且介面是可以多實現的
4、一個子類可以同時繼承抽象類和實現介面
5、一個介面不能繼承一個抽象類,但是卻可以通過extends關鍵字同時繼承多個介面,實現介面的多繼承性