超級白中白的學習進程(2):繼承(Extends)

繼承(Extends)
一、前言
仍是先說一下博主本人的一些基本狀況吧。本人去年剛剛畢業,專業是電氣工程及其自動化,就是在大學期間徹底沒有接觸過JAVA,也就稍稍瞭解了一下C語言。後來找了如今的工做也是和編程沒有任何關係,是的,本人如今就是全職工做,天天的學習時間只有6點下班後,還有鍛鍊一個小時身體,一天也沒有幾個小時學習,全都是看視頻自學的。不過如今就是打算辭職出去培訓班專門學習JAVA,如今發文的根據也是培訓機構發過來的視頻學習的,等6月份的時候會從新開始,到時候會才最基礎的設置環境開始發文。特別強調,本文是我本身對於學習的理解,可能理解不到,甚至是理解錯誤,因此僅僅做爲參考,不做爲任何指導,也但願各位看到個人錯誤可以指出來,謝謝!
二、概念
繼承,根據字面意思很容易理解就是父輩把他的東西給子輩,不論父輩有什麼,子輩就必定會有什麼,不論子輩有多少個,他們獲得的都是同樣相等的。繼承主要解決的問題就是共性抽取。格式以下:
public class 子類名 extends 父類名 {}編程

clipboard.png

三、特色
1> JAVA裏面的繼承是單繼承的:一個類只能擁有一個父類;
2> JAVA能夠多級繼承:假設類C的父類是類B,類B的父類是類A,那麼咱們也稱A爲C的父類;
3> JAVA裏面一個父類能夠同時擁有多個子類;
4> 子類能夠直接調用父類成員變量和方法:父類建立一個int變量int faNum = 10,成員方法method(),裏面就輸出一句話「父類中的方法」,在測試程序中能夠直接這樣寫:
clipboard.png學習

5> 父類的方法返回類型必定要大於等於子類:就拿咱們常見的Object和String類來講,總所周知,Object是全部類的祖宗類,因此咱們這樣寫沒有問題:
父類中的方法:測試

clipboard.png

子類中的方法:this

clipboard.png

可是二者的返回值反過來就會編譯報錯。
6> 父類中的訪問權限必定要小於或者等於子類:
訪問權限的4個關鍵字訪問權限大小:public>protected>(default)>private,其中default爲默認值,不用寫。
四、super和this關鍵字
剛剛演示了子類能夠直接調用父類的成員變量和方法,那麼若是父子兩個類定義的成員變量的名字和成員方法名字同樣,在測試程序裏面寫子類名.變量名,會輸出哪一個呢?好比:在父類中定義一個int 值,int num = 10;子類中也定義一個int值,int num = 20;在測試程序裏面建立子類的對象,對象名爲:son。那麼,System.out.println(son.num);會輸出什麼呢?答案是:20。這個過程能夠簡單的理解爲程序會調用裏它最近的那個參數。spa

上面的例子輸出語句也能夠這樣寫:System.out.println(this.num);this關鍵字能夠簡單的理解成代替原本的名字。可是上面的例子要輸出10的話就須要關鍵字:super了。輸出語句改成:System.out.println(super.num);此時的輸出結果就是10。 下面是一個典型的代碼:
父類代碼:.net

clipboard.png

子類代碼:視頻

clipboard.png

測試類代碼:對象

輸出
clipboard.pngblog

結果在子類那裏已經代表。這幾行代碼代表了this和super的用法。

做者:ZHC_YTYQ
來源:CSDN
原文:https://blog.csdn.net/ZHC_YTY...
版權聲明:本文爲博主原創文章,轉載請附上博文連接!繼承

相關文章
相關標籤/搜索