JAVA初級(八)物件之三大特性:繼承(1)繼承基礎使用和作用
本節主要介紹:繼承
什麼是繼承?
繼承是java面向物件程式設計技術的一塊基石,因為它允許建立分等級層次的類。
繼承就是子類繼承父類的特徵和行為,使得子類物件(例項)具有父類的例項域和方法,或子類從父類繼承方法,使得子類具有父類相同的行為
—來自菜鳥教程
比如說學生和老師,他們都有人的共同行為,比如說話吃飯啥的–>這個說話吃飯就是人 這個類的行為. 但是他們又各自有自己的行為.學生學習,老師教書.
–>老師類和學生類是子類,他們都繼承於人類. 這個人類就是父類
繼承如何實現.extends關鍵字.繼承有什麼用?
有一個學生類,老師類
//學生類
public class Student {
public void say(){
System.out.println("說話");
}
}
//老師類
public class Teacher {
public void say(){
System.out.println("說話");
}
}
他們都有說話這個行為.然後如果要讓他們說話。就執行以下程式碼。
public static void main(String[] args) { Student student = new Student(); Teacher teacher = new Teacher(); student.say(); teacher.say(); }
結果輸出:說話
說話
但如果我要改變他們說話的內容.是不是要同時改變兩個類裡面的內容。然後有100個類。比如程式設計師類,老闆類啥的他們也會說話。那我一下就得改多個地方了。這樣就很容易出錯或者漏掉
繼承就能解決這一個問題
那麼繼承怎麼實現?
在引出一個人類
//人類
public class Human {
public void say(){
System.out.println("說話");
}
}
然後讓學生類和老師類繼承人類
public class Student extends Human{ } public class Teacher extends Human{ }
繼承就這麼寫。 public class 類 extends 父類
這個Human就是父類(超類,基類) Student就是子類
然後你在執行一邊main方法.他們的結果一樣
哎,我明明沒在Studeng和Teacher裡面寫say().為什麼還能執行say()?
因為他們繼承了Human,他們能夠使用父類裡面所有的非private修飾的方法
所以繼承的第一個作用:能夠把多個重複且行為相同的程式碼整合到一個父類中.實現了程式碼的重複利用性.
那麼人類都會說話.但人類不一定都會教書啊.–>也就是說有的子類除了會父類的行為外,它還會有自己特有的行為
比如這個老師類,他會教書
public class Teacher extends Human{
public void teach(){
System.out.println("會教書");
}
}
然後這樣執行
public static void main(String[] args) {
Teacher teacher = new Teacher();
teacher.teach();
teacher.say();
}
這樣這個老師類不僅會說話還會教書。這個say()方法是人類的.teach()方法是它自己的
繼承第二個作用:能夠擴充某一個類的功能
繼承的作用總的來說就這兩個了。可以說我們使用繼承的原因就是因為這兩個
通俗一點的解釋就是
1,要好多個類有相同的程式碼,這樣會造成程式碼的重複.那麼我們造一個父類取裝這些相同的程式碼.然後再去繼承這個父類來共用。–>這樣的好處就是提升程式碼重複利用性。減少程式碼量。
2,擴充套件一個類的功能,就好比人類,人類會說話,但不一定都會教書.所以我們創造一個會教書的子類來擴充套件我的功能。–>好處就是方便我們能夠根據特定的需要定位到特定的類去進行維護。一個父類要是什麼都會.什麼程式碼都往裡面塞.那到時候我們修改的時候。看著就害怕
總結:
1,繼承如何實現?
使用extends關鍵字
2,使用繼承的原因?
兩個,1,提升可重複利用性.減少程式碼量;
2,擴張功能,方便維護