91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中的繼承和多態是什么

發布時間:2020-06-09 20:53:08 來源:億速云 閱讀:269 作者:元一 欄目:編程語言

Java

Java是一個面向對象的語言。對程序員來說,這意味著要注意應中的數據和操縱數據的方法(method),而不是嚴格地用過程來思考。在一個面向對象的系統中,類(class)是數據和操作數據的方法的集合。數據和方法一起描述對象(object)的狀態和行為。

每一對象是其狀態和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。

繼承的概念:

將多個類中的共同代碼單獨提取出來,形成一個獨立的類,        多個類和當前獨立的類產生一種關系: 繼承關系  extends

繼承的好處:

    1)提高了代碼的復用性     
    2)提高了代碼維護性      
    3)類和類產生這種關系,是多態的前提條件!

Java中繼承的特點:

1)在Java中,只支持單繼承,不支持多繼承,在別的語言可能有多繼承存在多繼承的語言:class 子類名 extends 父類名,父類名2{}        

2)在Java中,雖然不支持多繼承,但是可以多層繼承!    (分層初始化:先讓父類初始化再是子類初始化)
3)在Java中,所有的Java類(自己定義的,Jdk提供的)都繼承自 Object類 (超類)

繼承中的注意事項:

1)子類繼承父類,只能繼承父類非私有的成員(成員變量,成員方法),但是可以通過公共方法間接的訪問!

2)子類不能繼承父類的構造方法,但是可以通過關鍵字           間接訪問父類的構造方法(等會講super)
3)不要為了部分使用功能去使用"繼承"

繼承中成員的組成
成員變量
構造方法
成員方法

成員變量
1)子類繼承父類,子類中的成員變量名稱和父類中的成員變量不一致的情況:比較簡單,分別輸出!
2)子類繼承父類,子類中的成員變量名稱和父類中的成員名稱一致的情況:(重點)
    a)先在子類的局部位置中找,如果存在,就使用
    b)如果在類的局部位置沒有,那么在子類的成員位置找,如果存在,就使用
    c)如果子類的成員位置沒有,那么在父類的成員位置找,如果存在,就使用
    d)如果父類的成員位置都沒有,那么就報錯!

繼承中構造方法初始化的特點(分層初始化!)

繼承中,子類不能繼承父類的構造方法,但是可以通過super訪問父類的構造方法

子類的構造方法中(無參/有參),都會默認訪問父類的無參構造方法,

由于子類繼承父類,子類可能會用到父類中數據,所以先讓父類進行初始化,再讓子類初始化!(分層初始化!)
關于super():訪問無參構造方法,必須寫在子類構造方法中第一句話

什么是多態:
一個事物在不同時刻的不同狀態
舉例:

Animal a = new Cat() ;      //貓是動物
Cat c = new Cat() ; //貓是貓

多態內存圖:
Java中的繼承和多態是什么

多態的前提條件:

1)必須有繼承關系 (產生一個中extends 關系)            
2)需要有方法重寫子類繼承父類的時候,需要使用子類的功能,需要將父類的功能覆蓋掉! 舉例:貓狗案例
Animal, eat()和sleep(),每個動物的吃和睡的行為不同!            
3)必須有父類引用指向子類對象       (向上轉型)
Fu f = new Zi()  ; 在內存中使用子類實例化(創建對象),但是子類繼承父類,通過構造方法 讓父類初始化

多態的好處:

1)提高代碼的維護性(繼承來保證)        
2)提高代碼的擴展性(由多態保證)

多態的成員訪問特點:
Fu f = new Zi() ;

1)成員變量(非靜態變量)             編譯看左,運行看左邊  (看父類)
2)構造方法
Fu f = new Zi() ;  內存創建的是子類對象,但是存在繼承關系,執行構造方法先讓父類初始化完畢,然后在初始化子類
3)成員方法(非靜態)  (方法重寫,說的非靜態的方法!)           編譯看左,運行看右   (因為存在方法重寫,運行看的右邊)
4)靜態的成員方法:            編譯看左,運行看左(靜態方法算不上方法重寫,跟類先關,優先父類進行數據初始化,function方法先進內存)
父類引用.靜態方法名()--調用父類的方法

多態的弊端:
父類引用指向子類對象(向上轉型),無法訪問

1)直接在測試的時候,子類去創建自己的對象           Son s = new Son()

可以訪問,但是從內存角度考慮,重新在堆內存中開辟空間,耗費空間的內存! 
2)如果能夠類似于這種方式:父類引用指向子類對象,訪問的是父類,如果能夠將父類的引用轉換為子類引用           是可以的,
將父類的引用強制轉換為子類的引用 :向下轉型      

Zi zi = (Zi)f;子類的特有功能!

需要訪問子類特有功能,怎么辦?

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

焦作市| 上饶县| 股票| 涿鹿县| 佛山市| 富源县| 阿拉尔市| 新绛县| 石林| 乐山市| 公主岭市| 南皮县| 神农架林区| 安泽县| 辉县市| 民丰县| 鄂伦春自治旗| 临清市| 五家渠市| 论坛| 建瓯市| 佛冈县| 曲松县| 邢台县| 安义县| 龙山县| 竹溪县| 休宁县| 麻城市| 枞阳县| 秦皇岛市| 千阳县| 拉萨市| 确山县| 新疆| 隆回县| 闸北区| 察雅县| 凤阳县| 九寨沟县| 汤原县|