Java面向?qū)ο笾^承、構(gòu)造方法、重寫、重載
構(gòu)造方法
類的構(gòu)造方法是特殊的方法,此方法名稱必須和類名一致,構(gòu)造不能有返回值 不使用void,不能直接調(diào)用,在類對象實(shí)例化時自動調(diào)用,new 的時候可以調(diào)用。一般構(gòu)造方法用于類對象實(shí)例化時的初始化。如果一個類沒有編寫構(gòu)造方法,系統(tǒng)自動給此類編譯時添加一個無參構(gòu)造方法。如果聲明類編寫了構(gòu)造方法,系統(tǒng)不再添加無參構(gòu)造方法,建議編寫完構(gòu)造方法時,最好編寫一個無參構(gòu)造方法。
無參構(gòu)造
說白了就是沒有參數(shù)的構(gòu)造方法
概念看不懂舉個例子就清晰了。
聲明一個類A
public class A { }
在類A中創(chuàng)建一個構(gòu)造方法A(),并且打印出一句話
構(gòu)造方法必須和類名一樣
public class A { public A(){ System.out.println("構(gòu)造方法A()"); } }
新建一個測試類,并在類中nuw一個A類的對象
public class Test { public static void main(String[] args) { A a = new A(); } }
執(zhí)行main方法試試看
構(gòu)造方法相當(dāng)于在new對象是自動使用的方法
有參構(gòu)造
有參構(gòu)造就是有參數(shù)的構(gòu)造方法
在類A中聲明一個有參數(shù)的構(gòu)造方法,傳入兩個String類型的參數(shù),a和b
public class A { public A() { } public A(String a, String b) { System.out.println(a + b); } }
在測試類中new一個對象a時傳入?yún)?shù)
public class Test { public static void main(String[] args) { A a = new A("aaa", "bbb"); } }
執(zhí)行main方法
注意
沒有構(gòu)造方法的時候,類中隱藏了一個無參構(gòu)造。但是創(chuàng)建一個有參構(gòu)造,隱藏的無參構(gòu)造就會消失。那么以后new對象就只能帶參數(shù)了。所以在建有參構(gòu)造時一定要創(chuàng)建一個無參構(gòu)造方法放那。
類的繼承
java語言中,類class 是單繼承,多實(shí)現(xiàn)接口。接口interface 是多繼承的。
為什么要繼承呢?因?yàn)樽宇愊胍诟割惖幕A(chǔ)上添加新功能。
子類繼承父類可以繼承父類中的方法和屬性
下面舉例分析:
父類是人,子類是老司機(jī)。
人的特征有:兩只手,兩只眼,兩只腳,會吃會喝
老司機(jī)繼承了人類的特征,并且多出了自己會開車這個功能。
代碼如下:
這是一個人 類,具有以下屬性和功能。
public class Ren { public final String shou = "兩只手"; public final String jiao = "兩只腳"; public final String yan = "兩只眼"; public void chi() { System.out.println("會吃"); } public void he() { System.out.println("會喝"); } }
這是老司機(jī)類,繼承了人類。并且多了個會開車的功能
public class Siji extends Ren { public void kai() { System.out.println("會開車"); } }
測試:創(chuàng)建老司機(jī)對象輸出屬性并調(diào)用方法。
public class Test { public static void main(String[] args) { Siji b = new Siji(); System.out.println(b.jiao); System.out.println(b.shou); System.out.println(b.yan); b.chi(); b.he(); b.kai(); } }
方法重寫、重載
重寫 覆蓋:方法名,返回類型,形參都一樣。有此種情況的,必須為繼承關(guān)系。
重載:方法名一樣,返回類型,形參個數(shù),類型不樣的方法,不一定必須是繼承關(guān)系,同一個類中都可以,比如 構(gòu)造方法重載
重寫
因?yàn)樽宇惒粷M意父類的方法所以想把它改一下,這就是子類重寫父類的方法。
比如人會吃會喝,但是老司機(jī)不喜歡它會吃這個功能,想把它改一下,改成會吃屎。
代碼如下:
老司機(jī)重寫人類的chi()方法
方法名一定要一樣
public class Siji extends Ren { public void kai() { System.out.println("會開車"); } public void chi() { System.out.println("會吃屎"); } }
現(xiàn)在重寫運(yùn)行測試類
重載
有參構(gòu)造和無參構(gòu)造就是方法重載,一個類中有兩個名字一樣的方法,但是他們的返回值類型和參數(shù)類型,參數(shù)個數(shù)不一樣。
兩個方法的返回值類型和參數(shù)類型,參數(shù)個數(shù),只要有一個不一樣。但是他們方法名一樣,那么兩個方法就重載。
到此這篇關(guān)于Java面向?qū)ο笾^承、構(gòu)造方法、重寫、重載的文章就介紹到這了,更多相關(guān)Java面向?qū)ο髢?nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java實(shí)現(xiàn)發(fā)送手機(jī)短信語音驗(yàn)證功能代碼實(shí)例
這篇文章主要介紹了Java實(shí)現(xiàn)發(fā)送手機(jī)短信語音驗(yàn)證功能代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-09-09Spring Task定時任務(wù)的實(shí)現(xiàn)詳解
這篇文章主要介紹了SpringBoot定時任務(wù)功能詳細(xì)解析,這次的功能開發(fā)過程中也算是對其內(nèi)涵的進(jìn)一步了解,以后遇到定時任務(wù)的處理也更清晰,更有效率了,對SpringBoot定時任務(wù)相關(guān)知識感興趣的朋友一起看看吧2022-08-08Java通過反射機(jī)制將對象封裝成JSON和JsonArray格式
這篇文章主要介紹了Java通過反射機(jī)制將對象封裝成JSON和JsonArray格式,JAVA反射機(jī)制是在運(yùn)行狀態(tài)中,對于任意一個實(shí)體類,都能夠知道這個類的所有屬性和方法,需要的朋友可以參考下2023-10-10解析使用jdbc,hibernate處理clob/blob字段的詳解
本篇是對使用jdbc,hibernate處理clob/blob字段進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Idea導(dǎo)入多個maven項(xiàng)目到同一目錄下的方法示例
這篇文章主要介紹了Idea導(dǎo)入多個maven項(xiàng)目到同一目錄下,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07IDEA 錯誤 No main class specified的問題
這篇文章主要介紹了IDEA 錯誤 No main class specified的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04