JAVA面試題

1.抽象和封裝的不同點

抽象和封裝是互補的概念。一方面,抽象關(guān)注對象的行為菇怀。另一方面,封裝關(guān)注對象行為的細節(jié)哟楷。一般是通過隱藏對象內(nèi)部狀態(tài)信息做到封裝,因此否灾,封裝可以看成是用來提供抽象的一種策略卖擅。

2.重載和重寫的區(qū)別

重載: 發(fā)生在同一個類中,方法名必須相同坟冲,參數(shù)類型不同磨镶、個數(shù)不同、順序不同健提,方法返回值和訪問修飾符可以不同琳猫,發(fā)生在編譯時。

重寫: 發(fā)生在父子類中私痹,方法名脐嫂、參數(shù)列表必須相同,返回值范圍小于等于父類紊遵,拋出的異常范圍小于等于父類账千,訪問修飾符范圍大于等于父類;如果父類方法訪問修飾符為private則子類就不能重寫該方法暗膜。

3.字符型常量和字符串常量的區(qū)別

字符常量是單引號引起的一個字符 字符串常量是雙引號引起的若干個字符字符常量相當(dāng)于一個整形值(ASCII值),可以參加表達式運算 字符串常量代表一個地址值(該字符串在內(nèi)存中存放位置)字符常量只占一個字節(jié) 字符串常量占若干個字節(jié)(至少一個字符結(jié)束標(biāo)志)4.成員變量與局部變量的區(qū)別有那些匀奏?

從語法形式上,看成員變量是屬于類的学搜,而局部變量是在方法中定義的變量或是方法的參數(shù)娃善;成員變量可以被public,private,static等修飾符所修飾,而局部變量不能被訪問控制修飾符及static所修飾瑞佩;但是聚磺,成員變量和局部變量都能被final所修飾;從變量在內(nèi)存中的存儲方式來看炬丸,成員變量是對象的一部分瘫寝,而對象存在于堆內(nèi)存,局部變量存在于棧內(nèi)存從變量在內(nèi)存中的生存時間上看稠炬,成員變量是對象的一部分焕阿,它隨著對象的創(chuàng)建而存在,而局部變量隨著方法的調(diào)用而自動消失酸纲。成員變量如果沒有被賦初值捣鲸,則會自動以類型的默認值而賦值(一種情況例外被final修飾但沒有被static修飾的成員變量必須顯示地賦值);而局部變量則不會自動賦值闽坡。5.講講對static的理解栽惶?Java中是否可以覆蓋一個private或者是static的方法?

如果一個類的變量或者方法前面有static修飾疾嗅,那么表明這個方法或者變量屬于這個類外厂,也就是說可以在不創(chuàng)建對象的情況下直接使用

當(dāng)父類的方法被private修飾時,表明該方法為父類私有代承,對其他任何類都是不可見的汁蝶,因此如果子類定了一個與父類一樣的方法,這對于子類來說相當(dāng)于是一個新的私有方法论悴,且如果要進行向上轉(zhuǎn)型掖棉,然后去調(diào)用該“覆蓋方法”,會產(chǎn)生編譯錯誤

static方法時編譯時靜態(tài)綁定的膀估,屬于類幔亥,而覆蓋是運行時動態(tài)綁定的(動態(tài)綁定的多態(tài)),因此不能覆蓋.

6.是否可以在static環(huán)境中訪問非static變量?

static變量在Java中是屬于類的察纯,它在所有的實例中的值是一樣的帕棉。

當(dāng)類被Java虛擬機載入的時候,會對static變量進行初始化饼记。

如果代碼嘗試不用實例來訪問非static的變量香伴,編譯器會報錯,因為這些變量還沒有被創(chuàng)建出來具则,還沒有跟任何實例關(guān)聯(lián)上即纲。

7.Java支持的基本數(shù)據(jù)類型有哪些?

java支持的基本數(shù)據(jù)類型有以下9種:byte,shot,int,long,float,double,char,boolean,void.

8.怎么理解JAVA的自動拆箱裝箱博肋?

所謂自動裝箱就是將基本數(shù)據(jù)類型自動的轉(zhuǎn)換為對應(yīng)的對象包裝類型低斋,而拆箱就是將對象包裝類型轉(zhuǎn)換為基本數(shù)據(jù)類型。

java中的自動拆裝箱通常發(fā)生在變量賦值的過程中束昵,如:把int轉(zhuǎn)化成Integer拔稳,double轉(zhuǎn)化成double就是自動裝箱,反之就是自動拆箱

在實際中锹雏,應(yīng)該注意自動拆裝箱巴比,因為有時可能因為java自動裝箱機制,而導(dǎo)致創(chuàng)建了許多對象礁遵,對于內(nèi)存小的平臺會造成壓力轻绞。

9. 重寫和重載是什么?

重寫:發(fā)生在子類與父類之間,表示子類中的方法可以與父類中的某個方法的名稱和參數(shù)完全相同佣耐,通過子類創(chuàng)建的實例對象調(diào)用這個方法時政勃,將調(diào)用子類中的定義方法,這相當(dāng)于把父類中定義的那個完全相同的方法給覆蓋了兼砖,這也是面向?qū)ο缶幊痰亩鄳B(tài)性的一種表現(xiàn)奸远。重載:是指在一個類中既棺,可以有多個相同名稱的方法,但是他們的參數(shù)列表的個數(shù)或類型不同懒叛,當(dāng)調(diào)用該方法時丸冕,根據(jù)傳遞的參數(shù)類型調(diào)用對應(yīng)參數(shù)列表的方法。當(dāng)參數(shù)列表相同但返回值不同時薛窥,將會出現(xiàn)編譯錯誤胖烛,這并不是重載,因為jvm無法根據(jù)返回值類型來判斷應(yīng)該調(diào)用哪個方法诅迷。10.Java支持多繼承么佩番?如果不支持,如何實現(xiàn)?

不支持罢杉,Java不支持多繼承趟畏。每個類都只能繼承一個類,但是可以實現(xiàn)多個接口屑那。

在java中是單繼承的拱镐,也就是說一個類只能繼承一個父類。

java中實現(xiàn)多繼承有兩種方式,一是接口持际,而是內(nèi)部類.

11.什么是值傳遞和引用傳遞沃琅?Java中是值傳遞還是引用傳遞,還是都有?

值傳遞:就是在方法調(diào)用的時候蜘欲,實參是將自己的一份拷貝賦給形參益眉,在方法內(nèi),對該參數(shù)值的修改不影響原來實參姥份。引用傳遞:是在方法調(diào)用的時候郭脂,實參將自己的地址傳遞給形參,此時方法內(nèi)對該參數(shù)值的改變澈歉,就是對該實參的實際操作展鸡。在java中只有一種傳遞方式,那就是值傳遞.可能比較讓人迷惑的就是java中的對象傳遞時埃难,對形參的改變依然會影響到該對象的內(nèi)容莹弊。

12.接口和抽象類的區(qū)別是什么?

接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法涡尘。類可以實現(xiàn)很多個接口忍弛,但是只能繼承一個抽象類類如果要實現(xiàn)一個接口,它必須要實現(xiàn)接口聲明的所有方法考抄。但是细疚,類可以不實現(xiàn)抽象類聲明的所有方法,當(dāng)然川梅,在這種情況下疯兼,類也必須得聲明成是抽象的然遏。抽象類可以在不提供接口方法實現(xiàn)的情況下實現(xiàn)接口。Java 接口中聲明的變量默認都是 final 的镇防。抽象類可以包含非 final 的變量啦鸣。Java 接口中的成員函數(shù)默認是 public 的潮饱。抽象類的成員函數(shù)可以是 private来氧,protected 或者是 public 。接口是絕對抽象的香拉,不可以被實例化(java 8已支持在接口中實現(xiàn)默認的方法)啦扬。抽象類也不可以被實例化,但是凫碌,如果它包含 main 方法的話是可以被調(diào)用的扑毡。13.構(gòu)造器(constructor)是否可被重寫(override)?

構(gòu)造方法是不能被子類重寫的,但是構(gòu)造方法可以重載

簡單的講盛险,就是說一個類可以有多個構(gòu)造方法瞄摊。

14. String, StringBuffer StringBuilder的區(qū)別

String 的長度是不可變的;StringBuffer的長度是可變的苦掘,線程安全换帜;如果對一個字符串要經(jīng)常改變的話,就一定不要用String,否則會創(chuàng)建許多無用的對象出來.15.HashMap的工作原理是什么?

HashMap內(nèi)部是通過一個數(shù)組實現(xiàn)的鹤啡,只是這個數(shù)組比較特殊惯驼,數(shù)組里存儲的元素是一個Entry實體(在JAVA8中為Node),這個Entry實體主要包含key递瑰、value以及一個指向自身的next指針祟牲。

HashMap是基于hashing實現(xiàn)的,當(dāng)進行put操作時抖部,根據(jù)傳遞的key值得到它的hashcode说贝,然后再用這個hashcode與數(shù)組的長度進行模運算,得到一個int值慎颗,就是Entry要存儲在數(shù)組的位置(下標(biāo))乡恕;當(dāng)通過get方法獲取指定key的值時,會根據(jù)這個key算出它的hash值(數(shù)組下標(biāo))哗总,根據(jù)這個hash值獲取數(shù)組下標(biāo)對應(yīng)的Entry几颜,然后判斷Entry里的key,hash值或者通過equals()比較是否與要查找的相同讯屈,如果相同蛋哭,返回value,否則的話涮母,遍歷該鏈表(有可能就只有一個Entry谆趾,此時直接返回null)躁愿,直到找到為止,否則返回null沪蓬。

HashMap之所以在每個數(shù)組元素存儲的是一個鏈表彤钟,是為了解決hash沖突問題,當(dāng)兩個對象的hash值相等時跷叉,那么一個位置肯定是放不下兩個值的逸雹,于是hashmap采用鏈表來解決這種沖突,hash值相等的兩個元素會形成一個鏈表云挟。

16.HashMap與Hashtable的區(qū)別是什么?

Hashtable基于Dictionary類梆砸,而HashMap是基于AbstractMap。Dictionary是任何可將鍵映射到相應(yīng)值的類的抽象父類园欣,而AbstractMap是基于Map接口的實現(xiàn)帖世,它以最大限度地減少實現(xiàn)此接口所需的工作。HashMap和Hashtable都實現(xiàn)了Map接口沸枯,Hashtable基于Dictionary類日矫,而HashMap是基于AbstractMap。Dictionary是任何可將鍵映射到相應(yīng)值的類的抽象父類绑榴,而AbstractMap是基于Map接口的實現(xiàn)哪轿,它以最大限度地減少實現(xiàn)此接口所需的工作。HashMap允許鍵和值是null彭沼,而Hashtable不允許鍵或者值是null缔逛。Hashtable是同步(線程安全)的,而HashMap不是同步(非線程安全)姓惑。因此褐奴,HashMap更適合于單線程環(huán)境,而Hashtable適合于多線程環(huán)境于毙。HashMap提供了可供應(yīng)用迭代的鍵的集合敦冬,因此,HashMap是快速失敗的唯沮。另一方面脖旱,Hashtable提供了對鍵的列舉(Enumeration)。17.CorrentHashMap的工作原理

ConcurrenHashMap說是HashMap的升級版

ConcurrentHashMap是線程安全的介蛉,但是與Hashtable相比萌庆,實現(xiàn)線程安全的方式不同。

Hashtable是通過對hash表結(jié)構(gòu)進行鎖定币旧,是阻塞式的践险,當(dāng)一個線程占有這個鎖時,其他線程必須阻塞等待其釋放鎖。

ConcurrentHashMap是采用分離鎖的方式巍虫,它并沒有對整個hash表進行鎖定彭则,而是局部鎖定,也就是說當(dāng)一個線程占有這個局部鎖時占遥,不影響其他線程對hash表其他地方的訪問俯抖。

ConcurrentHashMap內(nèi)部有一個Segment<K,V>數(shù)組,該Segment對象可以充當(dāng)鎖。Segment對象內(nèi)部有一個HashEntry<K,V>數(shù)組瓦胎,于是每個Segment可以守護若干個桶(HashEntry),每個桶又有可能是一個HashEntry連接起來的鏈表芬萍,存儲發(fā)生碰撞的元素。

每個ConcurrentHashMap在默認并發(fā)級下會創(chuàng)建包含16個Segment對象的數(shù)組凛捏,每個數(shù)組有若干個桶担忧,當(dāng)進行put方法時,通過hash方法對key進行計算坯癣,得到hash值,找到對應(yīng)的segment最欠,然后對該segment進行加鎖示罗,然后調(diào)用segment的put方法進行存儲操作,此時其他線程就不能訪問當(dāng)前的segment芝硬,但可以訪問其他的segment對象蚜点,不會發(fā)生阻塞等待。

在Java8中拌阴,ConcurrentHashMap不再使用Segment分離鎖绍绘,而是采用一種樂觀鎖CAS算法來實現(xiàn)同步問題,但其底層還是“數(shù)組+鏈表->紅黑樹”的實現(xiàn)迟赃。

18.Array和ArrayList有什么區(qū)別陪拘?

Array可以容納基本類型和對象,而ArrayList只能容納對象纤壁。Array是指定大小的左刽,而ArrayList大小是固定的Array可以包含基本類型和對象類型,ArrayList只能包含對象類型酌媒。Array大小是固定的欠痴,ArrayList的大小是動態(tài)變化的。19.ArrayList和LinkedList有什么區(qū)別秒咨?

ArrayList和LinkedList都實現(xiàn)了List接口ArrayList是基于數(shù)組實現(xiàn)喇辽,它的底層是數(shù)組。它可以以O(shè)(1)時間復(fù)雜度對元素進行隨機訪問雨席。LinkedList是基于鏈表實現(xiàn)菩咨,每一個元素都和它的前一個和后一個元素鏈接在一起,在這種情況下,查找某個元素的時間復(fù)雜度是O(n)旦委。ArrayList在查找時速度快LinkedList的插入奇徒,添加,刪除操作速度更快缨硝,因為當(dāng)元素被添加到集合任意位置的時候摩钙,不需要像數(shù)組那樣重新計算大小或者是更新索引。LinkedList比ArrayList更占內(nèi)存查辩,因為LinkedList為每一個節(jié)點存儲了兩個引用胖笛,一個指向前一個元素,一個指向下一個元素宜岛。20.哪些集合類提供對元素的隨機訪問长踊?

ArrayList、HashMap萍倡、TreeMap和HashTable類提供對元素的隨機訪問身弊。

21.HashSet的底層實現(xiàn)是什么?

HashSet的實現(xiàn)是依賴于HashMap的,HashSet的值都是存儲在HashMap中的列敲。

在HashSet的構(gòu)造法中會初始化一個HashMap對象阱佛,HashSet不允許值重復(fù)。

因此戴而,HashSet的值是作為HashMap的key存儲在HashMap中的凑术,當(dāng)存儲的值已經(jīng)存在時返回false。

22.Comparable和Comparator接口的區(qū)別所意。

Comparable接口只包含一個compareTo()方法淮逊。這個方法可以個給兩個對象排序。具體來說扶踊,它返回負數(shù)泄鹏,0,正數(shù)來表明輸入對象小于姻檀,等于命满,大于已經(jīng)存在的對象。Comparator接口包含compare()和equals()兩個方法绣版。compare()方法用來給兩個輸入?yún)?shù)排序胶台,返回負數(shù),0杂抽,正數(shù)表明第一個參數(shù)是小于诈唬,等于,大于第二個參數(shù)缩麸。

equals()方法需要一個對象作為參數(shù)铸磅,它用來決定輸入?yún)?shù)是否和comparator相等。只有當(dāng)輸入?yún)?shù)也是一個comparator并且輸入?yún)?shù)和當(dāng)前comparator的排序結(jié)果是相同的時候,這個方法才返回true阅仔。

23.HashSet和TreeSet有什么區(qū)別吹散?

HashSet是由一個hash表來實現(xiàn)的,因此八酒,它的元素是無序的空民。add(),remove()羞迷,contains()方法的時間復(fù)雜度是O(1)界轩。TreeSet是由一個樹形的結(jié)構(gòu)來實現(xiàn)的,它里面的元素是有序的衔瓮。因此浊猾,add(),remove()热鞍,contains()方法的時間復(fù)雜度是O(logn)葫慎。24. Java中==與equals的區(qū)別

"==" 的作用是判斷兩個對象的地址是不是相等。即判斷兩個對象是不是同一個對象碍现。(基本數(shù)據(jù)類型==比較的是值幅疼,引用數(shù)據(jù)類型==比較的是內(nèi)存地址)equals() : 它的作用也是判斷兩個對象是否相等。但它一般有兩種使用情況:類沒有覆蓋equals()方法昼接。則通過equals()比較該類的兩個對象時,等價于通過“==”比較這兩個對象悴晰。類覆蓋了equals()方法慢睡。一般,我們都覆蓋equals()方法來兩個對象的內(nèi)容相等铡溪;若它們的內(nèi)容相等漂辐,則返回true(即,認為這兩個對象相等)棕硫。25.你重寫過 hashcode 和 equals 么髓涯,為什么重寫equals時必須重寫hashCode方法?

hashCode() 的作用是獲取哈希碼哈扮,也稱為散列碼纬纪;它實際上是返回一個int整數(shù)。這個哈希碼的作用是確定該對象在哈希表中的索引位置滑肉。如果兩個對象相等包各,則hashcode一定也是相同的如果兩個對象相等,對兩個對象分別調(diào)用equals方法都返回true如果兩個對象有相同的hashcode值,它們也不一定是相等的因此靶庙,equals方法被覆蓋過问畅,則hashCode方法也必須被覆蓋

hashCode()的默認行為是對堆上的對象產(chǎn)生獨特值。如果沒有重寫hashCode(),則該class的兩個對象無論如何都不會相等(即使這兩個對象指向相同的數(shù)據(jù))

26.Java的四種引用护姆,強弱軟虛矾端,用到的場景

強引用:如果一個對象具有強引用,它就不會被垃圾回收器回收卵皂。即使當(dāng)前內(nèi)存空間不足秩铆,JVM也不會回收它,而是拋出 OutOfMemoryError 錯誤渐裂,使程序異常終止豺旬。如果想中斷強引用和某個對象之間的關(guān)聯(lián),可以顯式地將引用賦值為null柒凉,這樣一來的話族阅,JVM在合適的時間就會回收該對象軟引用:在使用軟引用時,如果內(nèi)存的空間足夠膝捞,軟引用就能繼續(xù)被使用坦刀,而不會被垃圾回收器回收,只有在內(nèi)存不足時蔬咬,軟引用才會被垃圾回收器回收鲤遥。弱引用:具有弱引用的對象擁有的生命周期更短暫。因為當(dāng) JVM 進行垃圾回收林艘,一旦發(fā)現(xiàn)弱引用對象盖奈,無論當(dāng)前內(nèi)存空間是否充足,都會將弱引用回收狐援。不過由于垃圾回收器是一個優(yōu)先級較低的線程钢坦,所以并不一定能迅速發(fā)現(xiàn)弱引用對象虛引用:顧名思義,就是形同虛設(shè)啥酱,如果一個對象僅持有虛引用爹凹,那么它相當(dāng)于沒有引用,在任何時候都可能被垃圾回收器回收镶殷。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末禾酱,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子绘趋,更是在濱河造成了極大的恐慌颤陶,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件埋心,死亡現(xiàn)場離奇詭異指郁,居然都是意外死亡,警方通過查閱死者的電腦和手機拷呆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評論 3 399
  • 文/潘曉璐 我一進店門闲坎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疫粥,“玉大人,你說我怎么就攤上這事腰懂」4” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評論 0 360
  • 文/不壞的土叔 我叫張陵绣溜,是天一觀的道長慷彤。 經(jīng)常有香客問我,道長怖喻,這世上最難降的妖魔是什么底哗? 我笑而不...
    開封第一講書人閱讀 59,836評論 1 298
  • 正文 為了忘掉前任,我火速辦了婚禮锚沸,結(jié)果婚禮上跋选,老公的妹妹穿的比我還像新娘。我一直安慰自己哗蜈,他們只是感情好前标,可當(dāng)我...
    茶點故事閱讀 68,851評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著距潘,像睡著了一般炼列。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上音比,一...
    開封第一講書人閱讀 52,441評論 1 310
  • 那天俭尖,我揣著相機與錄音,去河邊找鬼洞翩。 笑死目溉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的菱农。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼柿估,長吁一口氣:“原來是場噩夢啊……” “哼循未!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秫舌,我...
    開封第一講書人閱讀 39,899評論 0 276
  • 序言:老撾萬榮一對情侶失蹤的妖,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后足陨,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嫂粟,經(jīng)...
    沈念sama閱讀 46,457評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,529評論 3 341
  • 正文 我和宋清朗相戀三年墨缘,在試婚紗的時候發(fā)現(xiàn)自己被綠了星虹。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片零抬。...
    茶點故事閱讀 40,664評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖宽涌,靈堂內(nèi)的尸體忽然破棺而出平夜,到底是詐尸還是另有隱情,我是刑警寧澤卸亮,帶...
    沈念sama閱讀 36,346評論 5 350
  • 正文 年R本政府宣布忽妒,位于F島的核電站,受9級特大地震影響兼贸,放射性物質(zhì)發(fā)生泄漏段直。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,025評論 3 334
  • 文/蒙蒙 一溶诞、第九天 我趴在偏房一處隱蔽的房頂上張望鸯檬。 院中可真熱鬧,春花似錦很澄、人聲如沸京闰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蹂楣。三九已至,卻和暖如春讯蒲,著一層夾襖步出監(jiān)牢的瞬間痊土,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評論 1 272
  • 我被黑心中介騙來泰國打工墨林, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留赁酝,地道東北人。 一個月前我還...
    沈念sama閱讀 49,081評論 3 377
  • 正文 我出身青樓旭等,卻偏偏與公主長得像酌呆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子搔耕,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,675評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應(yīng)用隙袁。 當(dāng)JAVA程序違反了JA...
    八爺君閱讀 4,596評論 1 114
  • 由于時間倉促,有些地方未寫完,后面會繼續(xù)補充.如有不妥之處,歡迎及時與我溝通. 如果你也是在學(xué)習(xí)java,給你們推...
    分不清java閱讀 2,835評論 0 15
  • 相關(guān)概念 面向?qū)ο蟮娜齻€特征 封裝,繼承,多態(tài).這個應(yīng)該是人人皆知.有時候也會加上抽象. 多態(tài)的好處 允許不同類對...
    東經(jīng)315度閱讀 1,947評論 0 8
  • Java SE 基礎(chǔ): 封裝、繼承弃榨、多態(tài) 封裝: 概念:就是把對象的屬性和操作(或服務(wù))結(jié)合為一個獨立的整體菩收,并盡...
    Jayden_Cao閱讀 2,112評論 0 8
  • 接口/抽象類意義規(guī)范、擴展鲸睛、回調(diào)為其子類提供一個公共的類型 封裝子類中得重復(fù)內(nèi)容 定義抽象方法娜饵,子類雖然有不同的實...
    MigrationUK閱讀 2,170評論 1 28