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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

编程问答

java super和this总结

發(fā)布時(shí)間:2024/9/30 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java super和this总结 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
今天群里有人問(wèn)我怎么復(fù)寫(xiě)父類(lèi)的構(gòu)造函數(shù),我當(dāng)時(shí)聽(tīng)錯(cuò)了以為是一般方法,然后就對(duì)他說(shuō)只要同名就可以,然后他告訴我錯(cuò)了,我再仔細(xì)看,才知道他問(wèn)的是復(fù)寫(xiě) 父類(lèi)的構(gòu)造方法,其實(shí)自己也不知道子類(lèi)能不能復(fù)寫(xiě)父類(lèi)的構(gòu)造方法,查閱資料才知道子類(lèi)不能繼承父類(lèi)的構(gòu)造方法,更不能覆蓋父類(lèi)的構(gòu)造方法。因此,子類(lèi)如果想使用父類(lèi)的構(gòu)造方法,必須在子類(lèi)的構(gòu)造方法中使用,而且必須使用關(guān)鍵字super來(lái)表示,而且super必須是子類(lèi)構(gòu)造方法中的頭一條語(yǔ)句。 于是我整理了關(guān)于super和this的知識(shí)點(diǎn): 如果子類(lèi)的屬性名和父類(lèi)重名,默認(rèn)是子類(lèi)的屬性。調(diào)用父類(lèi)的同名屬性需要super.屬性名;
1.什么是super?什么是this super關(guān)鍵字表示超(父)類(lèi)的意思。this變量代表對(duì)象本身。 2.使用super&this調(diào)用成員變量和方法 可以使用super訪問(wèn)父類(lèi)被子類(lèi)隱藏的變量或覆蓋的方法。當(dāng)前類(lèi)如果是從超類(lèi)繼承而來(lái)的,當(dāng)調(diào)用super.XX()就是調(diào)用基類(lèi)版本的XX()方法。見(jiàn)示例1 當(dāng)類(lèi)中有兩個(gè)同名變量,一個(gè)屬于類(lèi)(類(lèi)的成員變量),而另一個(gè)屬于某個(gè)特定的方法(方法中的局部變量),使用this區(qū)分成員變量和局部變量。見(jiàn)示例2 ? 示例1
class?Person { ????protected?void?print() { ???????System.out.println("The print() in class Person."); ????} } ? public?class?DemoSuper?extends?Person { ????public?void?print() { ???????System.out.println("The print() in class DemoSuper."); ???????super.print();//?調(diào)用父類(lèi)的方法 ????} ? ????public?static?void?main(String[] args) { ???????DemoSuper ds =?new?DemoSuper(); ???????ds.print(); ????} }
? 結(jié)果: The print() in class DemoSuper. The print() in class Person. ? 示例2
public?class?DemoThis { ????private?String?name; ? ????public?void?setName(String name) { ???????this.name?= name;//?前一個(gè)nameprivate name;后一個(gè)namesetName中的參數(shù)。 ????} }
3.使用this表示當(dāng)前調(diào)用方法的對(duì)象引用 假設(shè)你希望在方法的內(nèi)部獲得對(duì)當(dāng)前對(duì)象的引用,可使用關(guān)鍵字thisthis關(guān)鍵字只能在方法內(nèi)部使用,表示對(duì)“調(diào)用方法的那個(gè)對(duì)象”的引用。見(jiàn)示例3 ? 示例3
Button?bn; bn.addActionListener(this);
4.使用super&this調(diào)用構(gòu)造子 super(參數(shù)):調(diào)用基類(lèi)中的某一個(gè)構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語(yǔ)句)。見(jiàn)示例4 this(參數(shù)):調(diào)用本類(lèi)中另一種形成的構(gòu)造函數(shù)(應(yīng)該為構(gòu)造函數(shù)中的第一條語(yǔ)句)。?見(jiàn)示例5 ? 示例4
class?Person { ????public?static?void?prt(String s) { ???????System.out.println(s); ????} ? ????Person() { ???????prt("A Person."); ????} ? ????Person(String name) { ???????prt("A person name is:"?+ name); ????} } ? public?class?Chinese?extends?Person { ????Chinese() { ???????super();//?調(diào)用父類(lèi)構(gòu)造函數(shù)。 ???????prt("A chinese."); ????} ? ????Chinese(String name) { ???????super(name);//?調(diào)用父類(lèi)具有相同形參的構(gòu)造函數(shù)。 ???????prt("his name is:"?+ name); ????} ? ????public?static?void?main(String[] args) { ???????Chinese cn =?new?Chinese(); ???????cn =?new?Chinese("kevin"); ????} }
? 結(jié)果: A Person. A chinese. A person name is:kevin his name is:kevin ? 示例5
Point(int?a,int?b){ ????x=a; ????y=b; } Point(){ ????this(1,1);?//調(diào)用point(1,1),必須是第一條語(yǔ)句。 }
5.使用super&this應(yīng)該注意些什么? 1)調(diào)用super()必須寫(xiě)在子類(lèi)構(gòu)造方法的第一行,否則編譯不通過(guò)。每個(gè)子類(lèi)構(gòu)造方法的第一條語(yǔ)句,都是隱含地調(diào)用super(),如果父類(lèi)沒(méi)有這種形式的構(gòu)造函數(shù),那么在編譯的時(shí)候就會(huì)報(bào)錯(cuò)。 ? 2super()this()類(lèi)似,區(qū)別是,super從子類(lèi)中調(diào)用父類(lèi)的構(gòu)造方法,this()在同一類(lèi)內(nèi)調(diào)用其它方法。 ? 3super()this()均需放在構(gòu)造方法內(nèi)第一行。 ? 4)盡管可以用this調(diào)用一個(gè)構(gòu)造器,但卻不能調(diào)用兩個(gè)。 ? 5thissuper不能同時(shí)出現(xiàn)在一個(gè)構(gòu)造函數(shù)里面,因?yàn)?/span>this必然會(huì)調(diào)用其它的構(gòu)造函數(shù),其它的構(gòu)造函數(shù)必然也會(huì)有super語(yǔ)句的存在,所以在同一個(gè)構(gòu)造函數(shù)里面有相同的語(yǔ)句,就失去了語(yǔ)句的意義,編譯器也不會(huì)通過(guò)。 ? 6this()super()都指的是對(duì)象,所以,均不可以在static環(huán)境中使用。包括:static變量,static方法,static語(yǔ)句塊。 ? 7)從本質(zhì)上講,this是一個(gè)指向本對(duì)象的指針,?然而super是一個(gè)Java關(guān)鍵字。

總結(jié)

以上是生活随笔為你收集整理的java super和this总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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