日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 继承类_java类的继承

發(fā)布時間:2024/7/19 编程问答 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 继承类_java类的继承 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

繼承就是在一個現(xiàn)有類型的基礎(chǔ)上,通過增加新的方法或者重定義已有方法(重寫)的方式,產(chǎn)生一個新的類型。繼承是面向?qū)?象的三個基本特征——封裝、繼承、多態(tài)的其中之一,我們在使用java時編寫的每一個類都是在繼承,因為在java語言 中,java.lang.object類是所有類最根本的基類(或者叫父類、超類),如果我們新定義的一個類沒有明確地指定繼承自哪個基類,那么java 就會默認(rèn)為它是繼承自object類的。

1.為什么需要使用繼承??提高代碼的重用性。?提高程序的擴(kuò)展性。

2.Java繼承的語法格式?Java繼承的關(guān)鍵字:extends?格式:?public class 類名(子類,派生類,超類) extends 類名(父類,基類) {?}??注意:?Java類的繼承是單繼承。

3.子類繼承到了父類的哪些屬性和方法?子類繼承父類后,子類繼承到了父類所有的屬性和普通方法。構(gòu)造方法沒有被子類繼承。?能不能調(diào)用方法或?qū)傩?#xff0c;是因為訪問修飾符的關(guān)系來決定的。?public所有的地方都可以調(diào)用?protected當(dāng)前包下和有繼承關(guān)系不同包的子類中。?默認(rèn)的只能在當(dāng)前包下調(diào)用?private只能在當(dāng)前類中。?子類能自己定義屬性和方法嗎??可以并且子類可以擁有比父類更多的屬性和方法

4.方法重寫?方法重寫的條件?必須要存在繼承關(guān)系?方法的返回值類型,方法名,參數(shù)個數(shù),參數(shù)類型,參數(shù)順序都必須要和父類的完全一致。?子類重寫方法時,方法的訪問修飾符可以大于或者等于父類方法的訪問修飾符。?在調(diào)用方法的時候是否會調(diào)用錯方法??創(chuàng)建的對象是否是子類的(new 構(gòu)造方法())?如果是子類的構(gòu)造方法創(chuàng)建的對象,那會優(yōu)先執(zhí)行子類的方法,子類沒有才會執(zhí)行父類的方法。?重載和重寫的區(qū)別:?重載和重寫都是針對方法的概念,在弄清楚這兩個概念之前,我們先來了解一下什么叫方法的型構(gòu)。型構(gòu)就是指方法的組成結(jié)構(gòu),具體包括方法的名稱和參數(shù),涵蓋 參數(shù)的數(shù)量、類型以及出現(xiàn)的順序,但是不包括方法的返回值類型,訪問權(quán)限修飾符,以及abstract、static、final等修飾符。比如下面兩個就是具有相同型構(gòu)的方法:?public void method(int i string s) {?// do something?}?public string method(int i string s) {?// do something?}?而這兩個就是具有不同型構(gòu)的方法:?public void method(int i string s) {// do something?}?public void method(string s int i) {?// do something?}?重載:?英文名是overload,是指在同一個類中定義了一個以上具有相同名稱,但是型構(gòu)不同的方法。在同一個類中,是不允許定義多于一個的具有相同型構(gòu)的方法的。?方法名相同,但參數(shù)類型、數(shù)量或順序必有一不同。?在同一類中或有繼承關(guān)系的類中均可重載。?重寫:?英文名是override,是指在繼承情況下,子類中定義了與其基類中方法具有相同型構(gòu)的新方法,就叫做子類把基類的方法重載了。這是實現(xiàn)多態(tài)必須的步驟。?方法名、參數(shù)類型、數(shù)量、順序必須完全相同,訪問修飾符可以不同,但子類必須大于或等于父類。只發(fā)生在有繼承關(guān)系的類中。

5.自動轉(zhuǎn)型?方向:由子類自動轉(zhuǎn)為父類?前提:兩個對象所在的類存在繼承關(guān)系?語法:?[1]直接自動轉(zhuǎn)型?父類名 對象名 = new 子類構(gòu)造函數(shù)();?Student stu =new UNStudent();?[2]在方法中進(jìn)行自動轉(zhuǎn)型?子類名 對象名 = new 子類構(gòu)造函數(shù)();?UNStudent unstu =new UNStudent();?teach(unstu);?訪問修飾符 返回值類型 方法名(父類名 參數(shù)名){?}?public void teach (Student stu){?}?不必管創(chuàng)建對象左邊的部分,只要看右邊new的構(gòu)造函數(shù)是子類還是父類, 如果是子類,則優(yōu)先調(diào)用子類的方法。?注意:要使用自動轉(zhuǎn)型,必須要存在繼承關(guān)系。?格式:?父類名 對象名 = new 子類構(gòu)造方法(參數(shù)值,...);?Student un = new UNStudent();?un.play();?使用自動轉(zhuǎn)型后,不能調(diào)用子類自定義的方法;?因為Java編譯時,只會根據(jù)對象名的類型去查找方法是否存在,如果存在則通過編譯,如果不存在則報錯。?實例:一個大學(xué)老師,可以教大學(xué)生,也可以教初中生,高中生,小學(xué)生?那么,對于這個教學(xué)的方法我們就可以只寫一次。然后在使用時進(jìn)行相應(yīng)的自動轉(zhuǎn)換一達(dá)到教學(xué)各種不同階層學(xué)生的目地。?對于我們來說,使用自動轉(zhuǎn)型,那么就只能調(diào)用父類中已經(jīng)定義過的方法。?對于這個轉(zhuǎn)型,我們有2種方法:?一: 父類名 父類對象名 = new 子類構(gòu)造函數(shù)();二:父類名 父類對象名 = new 子類構(gòu)造函數(shù)() 子類名 子類對象名 = new 子類構(gòu)造函數(shù)();?public 返回值類型 方法名(父類類名 父類對象名){?父類對象名.方法名();?}?方法名(父類對象名);?方法名(子類對象名);但是,自動轉(zhuǎn)型也是有明顯缺點的,如果使用自動轉(zhuǎn)型,則無法調(diào)用子類的獨有方法。因為計算機(jī)比較笨,它只能按照固定的已經(jīng)設(shè)定好的方式去執(zhí)行,Java在編譯的時候,是根據(jù)對象名的類型去編譯程序,這個時候在子類中,是找不到相應(yīng)的方法的,所以編譯出錯了。

技術(shù)分享:www.kaige123.com

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的java 继承类_java类的继承的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。