Java基礎(chǔ)入門(mén)之Object類(lèi)、匿名內(nèi)部類(lèi)、構(gòu)造方法的繼承解析
點(diǎn)擊上方“Java進(jìn)階學(xué)習(xí)交流”,進(jìn)行關(guān)注
后臺(tái)回復(fù)“Java”即可獲贈(zèng)Java學(xué)習(xí)資料
今
日
雞
湯
古調(diào)雖自愛(ài),今人多不彈。前言
大家好,我是Java進(jìn)階者。這篇文章我們主要介紹Java基礎(chǔ)中的Object類(lèi)、匿名內(nèi)部類(lèi)、構(gòu)造方法的繼承知識(shí),一起來(lái)學(xué)習(xí)下吧!
一、Object類(lèi)
1.Object類(lèi)是所有類(lèi)的父類(lèi),所有類(lèi)都繼承Object類(lèi)。
2.Object類(lèi)方法有:
toString()方法:這個(gè)方法用的比較多,它是返回該對(duì)象的字符串,一般子類(lèi)會(huì)覆蓋;
getClass()方法:返回Object運(yùn)行的類(lèi)型;
equals()方法:判斷對(duì)象的內(nèi)容是否相等;
finalize()方法:這個(gè)方法主要用來(lái)釋放資源。這個(gè)方法用的少,無(wú)法確定什么時(shí)候調(diào)用。
hashCode()方法:返回這個(gè)對(duì)象的哈希值;
notify()方法:這個(gè)方法是喚醒在這個(gè)對(duì)象上等待的某個(gè)線程;
notifyAll()方法:這個(gè)方法是喚醒在這個(gè)對(duì)象上等待的所有線程;
wait()方法:當(dāng)前線程等待這個(gè)對(duì)象的鎖,它是具有這個(gè)對(duì)象的鎖。wait()方法表示一直等待,一直到得到鎖或被中斷。wait(long timeout)設(shè)定一個(gè)超時(shí)間隔,如果在規(guī)定時(shí)間內(nèi)沒(méi)有獲得鎖就返回。
clone()方法:保護(hù)方法,實(shí)現(xiàn)對(duì)象的淺復(fù)制。當(dāng)實(shí)現(xiàn)了Cloneable接口才能夠調(diào)用這個(gè)方法,不然會(huì)拋出異常。
3.Object類(lèi)的例子
例如:
//定義水果類(lèi)class Fruit{double weight=10;//定義weight屬性為重量//定義info()方法void info(){System.out.println("我是一個(gè)水果,重量為:"+weight+"g!");}}public class p32 {public static void main(String[] args) {// TODO Auto-generated method stubFruit f=new Fruit();//創(chuàng)建Fruit類(lèi)對(duì)象System.out.println(f.toString());//調(diào)用toString方法}}
運(yùn)行的結(jié)果是:

從上面代碼中,在輸出的語(yǔ)句中是調(diào)用了Fruit對(duì)象的toString()方法。這個(gè)Fruit類(lèi)是繼承Object類(lèi),在Object定義了toString()方法,輸出這個(gè)對(duì)象的信息。
4.重寫(xiě)Object類(lèi)toString()方法例子
//定義水果類(lèi)class Fruit{double weight=10;//定義weight屬性為重量//重寫(xiě)Object類(lèi)的toString()方法public String toString(){return "我是一個(gè)水果,重量為:"+weight+"g!";}}public class p32 {public static void main(String[] args) {// TODO Auto-generated method stubFruit f=new Fruit();//創(chuàng)建Fruit類(lèi)對(duì)象System.out.println(f.toString());//調(diào)用toString方法}}
運(yùn)行的結(jié)果是:

從上面代碼中,在定義的水果類(lèi)中重寫(xiě)Object類(lèi)的toString()方法,F(xiàn)ruit類(lèi)是繼承Object類(lèi),輸出該對(duì)象的信息。
二、匿名內(nèi)部類(lèi)
1.什么是匿名內(nèi)部類(lèi)
匿名內(nèi)部類(lèi)簡(jiǎn)單來(lái)說(shuō)就是不知道這個(gè)類(lèi)的名字。創(chuàng)建匿名內(nèi)部類(lèi),只要調(diào)用一次就可以了。
2.匿名內(nèi)部類(lèi)的語(yǔ)法
new 類(lèi)名(參數(shù)) | 父接口() {// 匿名內(nèi)部類(lèi)的類(lèi)體部分}
3.如何實(shí)現(xiàn)匿名內(nèi)部類(lèi)例子
//定義水果類(lèi)接口interface Fruit{double weight=30;//定義weight屬性為重量void info();//定義抽象方法}public class p33 {public static void main(String[] args) {// TODO Auto-generated method stub//定義匿名內(nèi)部類(lèi)作為參數(shù)傳給fruitInfo()方法fruitInfo(new Fruit(){//實(shí)現(xiàn)info()方法public void info(){System.out.println("我是一個(gè)水果,重量為"+weight+"g!");}});}//定義靜態(tài)方法fruitInfo()public static void fruitInfo(Fruit f){f.info();//調(diào)用對(duì)象f的info()方法}}
運(yùn)行的結(jié)果是:

從上面代碼中,首先是定義了水果類(lèi)接口,定義了weight屬性和info()抽象方法。在調(diào)用fruitInfo方法,把方法的參數(shù)寫(xiě)在new Fruit(){}相當(dāng)于實(shí)例化對(duì)象,把對(duì)象傳給fruitInfo方法。在大括號(hào)里面是子類(lèi)匿名。
三、構(gòu)造方法的繼承
1.構(gòu)造方法的繼承的特點(diǎn):
① 子類(lèi)是可以無(wú)條件地繼承父類(lèi)的無(wú)參數(shù)的構(gòu)造方法;
② 如果子類(lèi)自己沒(méi)有構(gòu)造方法,將繼承父類(lèi)的無(wú)參數(shù)構(gòu)造方法成為自己的構(gòu)造方法;如果子類(lèi)自己定義了構(gòu)造方法,當(dāng)在創(chuàng)建新對(duì)象時(shí),它將先執(zhí)行繼承父類(lèi)的無(wú)參數(shù)構(gòu)造方法,然后再執(zhí)行自己的構(gòu)造方法。
③ 對(duì)于父類(lèi)的含參數(shù)的構(gòu)造方法,子類(lèi)在自己構(gòu)造方法中用“super”關(guān)鍵字來(lái)調(diào)用它,在這個(gè)調(diào)用語(yǔ)句需要是子類(lèi)構(gòu)造方法的第一個(gè)可執(zhí)行語(yǔ)句。
2.構(gòu)造方法的繼承例子:
//定義父類(lèi)class Father{public Father(){System.out.println("父類(lèi)...");}public Father(String name){System.out.println("父類(lèi)名字為:" + name);}}//定義子類(lèi)繼承父類(lèi)class Son extends Father{public Son(){super("Tom");System.out.println("子類(lèi)...");}}public class p39 {public static void main(String[] args) {// TODO Auto-generated method stubSon son = new Son();//創(chuàng)建Son的實(shí)例對(duì)象}}
運(yùn)行的結(jié)果是:

四、總結(jié)
本文主要介紹了Object類(lèi)、匿名內(nèi)部類(lèi)、構(gòu)造方法的繼承。
Object類(lèi)是所有類(lèi)的父類(lèi),所有類(lèi)都繼承Object類(lèi)。介紹了Object類(lèi)的一些方法,通過(guò)Object類(lèi)例子和重寫(xiě)Object類(lèi)toString()方法例子幫助理解用法。
匿名內(nèi)部類(lèi)簡(jiǎn)單來(lái)說(shuō)就是不知道這個(gè)類(lèi)的名字。創(chuàng)建匿名內(nèi)部類(lèi),只要調(diào)用一次就可以了。
構(gòu)造方法的繼承介紹了它的特點(diǎn),通過(guò)他的例子來(lái)了解這個(gè)構(gòu)造方法的繼承。
希望大家通過(guò)本文的學(xué)習(xí),對(duì)你有所幫助!
-------------------?End?-------------------
往期精彩文章推薦:
一篇文章帶你了解Java繼承那些事兒
一篇文章教會(huì)你使用Java中的super關(guān)鍵字基本用法
一篇文章帶你了解Java中的static關(guān)鍵字和靜態(tài)變量、靜態(tài)方法
一篇文章帶你了解Java類(lèi)的設(shè)計(jì)和封裝及類(lèi)成員的訪問(wèn)控制

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Java學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
