1. 程式人生 > >JAVA初級(八)物件之三大特性:繼承(1)繼承基礎使用和作用

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,擴張功能,方便維護