關(guān)于java面向?qū)ο缶幊?/p>
JAVA語(yǔ)言面向?qū)ο蟪绦蛟O(shè)計(jì)包括計(jì)算機(jī)編程語(yǔ)言、Java語(yǔ)言的基礎(chǔ)知識(shí)、面向?qū)ο蟪绦蛟O(shè)計(jì)原理和Java語(yǔ)言實(shí)現(xiàn)、Java特殊關(guān)鍵字的使用、異常處理、管理與I/O流、圖形用戶界面開(kāi)發(fā)、多線程編程技術(shù)、小應(yīng)用程序和多媒體技術(shù)、JAVA網(wǎng)絡(luò)編程、數(shù)據(jù)結(jié)構(gòu)和集合框架、Java中的數(shù)據(jù)庫(kù)編程等內(nèi)容,
1:允許將子類(lèi)的引用付給父類(lèi)的對(duì)象,但子類(lèi)中的那些不是從父類(lèi)繼承來(lái)的成員將不再可見(jiàn)。
例:Bus bus=new Bus();
Car car=bus;但是car實(shí)例不可以引用bus中的非繼承域,如p載人數(shù)。
2:this和super
this引用當(dāng)前類(lèi)的變量或方法,super引用當(dāng)前對(duì)象的直接父類(lèi)的變量或方法
3:多態(tài):
同一個(gè)名字可以有多種實(shí)現(xiàn)狀態(tài),同一個(gè)類(lèi)內(nèi)部,可以擁有同名的,參數(shù)列表不同的方法,子類(lèi)也可以有同父類(lèi)同名的變量和方法。
1)覆蓋(override),當(dāng)子類(lèi)繼承了父類(lèi)的同名無(wú)參函數(shù)時(shí),子類(lèi)新寫(xiě)的方法覆蓋父類(lèi)的方法,(返回類(lèi)型必須相同)
2)重載(overload)繼承了父類(lèi)的同名有參函數(shù),并且方法參數(shù)不同時(shí)稱(chēng)為重載,使該方法具有自己的特性。
3)重寫(xiě)(overwrite)當(dāng)前類(lèi)的同名方法,同一個(gè)類(lèi)中可以有多個(gè)具有相同名字的方法,由傳遞給他們的不同個(gè)數(shù)和類(lèi)型的參數(shù)來(lái)決定使用哪種方法。
覆蓋和重載針對(duì)父類(lèi),重寫(xiě)針對(duì)子類(lèi)。
4:抽象類(lèi)定義:
抽象類(lèi)可以有自己的數(shù)據(jù)成員,也可以又非abstract的成員方法,也可以有抽象方法,抽象方法只有函數(shù)定義部分,沒(méi)有函數(shù)體。
子類(lèi)繼承抽象類(lèi)時(shí)必須實(shí)現(xiàn)所有的abstract方法。
5:接口,
java只支持單一繼承,為了實(shí)現(xiàn)多重繼承,設(shè)計(jì)了接口。一個(gè)類(lèi)只可以有一個(gè)直接父類(lèi),但是可以實(shí)現(xiàn)多個(gè)接口。
接口中的方法可以有參數(shù)列表和返回類(lèi)型,但是沒(méi)有任何方法體。
接口中可以包含字段,但是會(huì)被隱士地聲明為static和final
接口中的字段只能被存儲(chǔ)在該接口的靜態(tài)存儲(chǔ)區(qū)域內(nèi),而不屬于該接口。
接口中的方法為public
擴(kuò)展一個(gè)接口來(lái)生成新的接口使用關(guān)鍵字extends,實(shí)現(xiàn)一個(gè)接口使用implements.
java接口的方法只能是抽象的和公開(kāi)的,java接口比java抽象類(lèi)更抽象化。
6:接口與抽象類(lèi)的區(qū)別
1)抽象類(lèi)可以提供實(shí)現(xiàn)方法,接口不能提供。如果向抽象類(lèi)中添加一個(gè)新方法,則它的所有子類(lèi)一下子就得到了這個(gè)方法,但是接口,所有實(shí)現(xiàn)這個(gè)接口的類(lèi)必須都再實(shí)現(xiàn)這個(gè)方法才行。
2)抽象類(lèi)只能繼承一個(gè),而可以實(shí)現(xiàn)多個(gè)接口。
“默認(rèn)適配模式”:java接口在最上面,然后緊跟著抽象類(lèi)。
3)接口可以被嵌套,既可以被某個(gè)類(lèi)嵌套,也可以被接口嵌套。
7:靜態(tài)類(lèi):
即定義了靜態(tài)方法、靜態(tài)變量、靜態(tài)代碼塊的類(lèi)。靜態(tài)類(lèi)不能被實(shí)例化,累的成員都是靜態(tài)的。意味著告訴編譯器,這個(gè)方法不需要?jiǎng)?chuàng)建一個(gè)此類(lèi)的對(duì)象即可使用。費(fèi)靜態(tài)類(lèi)一般需要實(shí)例話后才能操作。靜態(tài)類(lèi)在運(yùn)行時(shí)加載到內(nèi)存中,所以不用進(jìn)行初始化,也沒(méi)有實(shí)例,因此在類(lèi)的內(nèi)部也不能用this
【java面向?qū)ο缶幊獭肯嚓P(guān)文章:
2016年java面向?qū)ο缶幊填}庫(kù)及答案10-24
面向?qū)ο缶幊痰膉avascript基礎(chǔ)08-22
Javascript簡(jiǎn)單實(shí)現(xiàn)面向?qū)ο缶幊汤^承實(shí)例代碼10-02
2017年計(jì)算機(jī)java面向?qū)ο笾R(shí)點(diǎn)06-30
javascript面向?qū)ο笾械膶?duì)象怎么理解09-02
Java基本編程技巧07-13