/*
- 定義員工類Employee
*/
class Employee {
String name; // 定義name屬性
// 定義員工的工作方法
public void work() {
System.out.println("盡心盡力地工作");
}
}
1.1 繼承的概念
在現(xiàn)實(shí)生活中,繼承一般指的是子女繼承父輩的財(cái)產(chǎn)。在程序中,繼承描述的是事物之間的所屬關(guān)系,通過(guò)繼承可以使多種事物之間形成一種關(guān)系體系。例如公司中的研發(fā)部員工和維護(hù)部員工都屬于員工,程序中便可以描述為研發(fā)部員工和維護(hù)部員工繼承自員工,同理,JavaEE工程師和Android工程師繼承自研發(fā)部員工,而維網(wǎng)絡(luò)維護(hù)工程師和硬件維護(hù)工程師繼承自維護(hù)部員工。這些員工之間會(huì)形成一個(gè)繼承體系,具體如下圖所示。
關(guān)鍵字 extends
/*
- 定義研發(fā)部員工類Developer 繼承 員工類Employee
*/
class Developer extends Employee {
// 定義一個(gè)打印name的方法
public void printName() {
System.out.println("name=" + name);
}
}
/*
- 定義測(cè)試類
*/
public class Example01 {
public static void main(String[] args) {
Developer d = new Developer(); // 創(chuàng)建一個(gè)研發(fā)部員工類對(duì)象
d.name = "小明"; // 為該員工類的name屬性進(jìn)行賦值
d.printName(); // 調(diào)用該員工的printName()方法
d.work(); // 調(diào)用Developer類繼承來(lái)的work()方法
}
}
1.6 方法重寫的注意事項(xiàng)
重寫需要注意的細(xì)節(jié)問(wèn)題:
? 子類方法覆蓋父類方法,必須要保證權(quán)限大于等于父類權(quán)限。
class Fu(){
void show(){}
public void method(){}
}
class Zi() extends Fu{
public void show(){} //編譯運(yùn)行沒(méi)問(wèn)題
void method(){} //編譯錯(cuò)誤
}
? 寫法上稍微注意:必須一模一樣:方法的返回值類型 方法名 參數(shù)列表都要一樣。
總結(jié):當(dāng)一個(gè)類是另一個(gè)類中的一種時(shí),可以通過(guò)繼承,來(lái)繼承屬性與功能。如果父類具備的功能內(nèi)容需要子類特殊定義時(shí),進(jìn)行方法重寫。