Java程序員筆試必備--面向?qū)ο缶幊?/h1>

電子書(shū)下載地址: http://wiki.jikexueyuan.com/project/java-interview-bible/

面向?qū)ο缶幊?/h1>

1. Java 中的方法覆蓋 (Overriding) 和方法重載 (Overloading) 是什么意思?

Java 中的方法重載發(fā)生在同一個(gè)類(lèi)里面兩個(gè)或者是多個(gè)方法的方法名相同但是參數(shù)不同的情況府框。與此相對(duì),方法覆蓋是說(shuō)子類(lèi)重新定義了父類(lèi)的方法激涤。方法覆蓋必須有相同的方法名一姿,參數(shù)列表和返回類(lèi)型丝里。覆蓋者可能不會(huì)限制它所覆蓋的方法的訪問(wèn)吩蔑。

2. Overload 和 Override 的區(qū)別替裆? Overloaded 的方法是否可以改變返回值的類(lèi)型?

Overload 是重載的意思校辩,Override 是覆蓋的意思窘问,也就是重寫(xiě)辆童。

重載 Overload 表示同一個(gè)類(lèi)中可以有多個(gè)名稱(chēng)相同的方法,但這些方法的參數(shù)列表各不相同(即參數(shù)個(gè)數(shù)或類(lèi)型不同)惠赫。

重寫(xiě) Override 表示子類(lèi)中的方法可以與父類(lèi)中的某個(gè)方法的名稱(chēng)和參數(shù)完全相同把鉴,通過(guò)子類(lèi)創(chuàng)建的實(shí)例對(duì)象調(diào)用這個(gè)方法時(shí),將調(diào)用子類(lèi)中的定義方法儿咱,這相當(dāng)于把父類(lèi)中定義的那個(gè)完全相同的方法給覆蓋了庭砍,這也是面向?qū)ο缶幊痰亩鄳B(tài)性的一種表現(xiàn)。子類(lèi)覆蓋父類(lèi)的方法時(shí)混埠,只能比父類(lèi)拋出更少的異常怠缸,或者是拋出父類(lèi)拋出的異常的子異常,因?yàn)樽宇?lèi)可以解決父類(lèi)的一些問(wèn)題钳宪,不能比父類(lèi)有更多的問(wèn)題揭北。子類(lèi)方法的訪問(wèn)權(quán)限只能比父類(lèi)的更大扳炬,不能更小。如果父類(lèi)的方法是 private 類(lèi)型搔体,那么恨樟,子類(lèi)則不存在覆蓋的限制,相當(dāng)于子類(lèi)中增加了一個(gè)全新的方法疚俱。

至于 Overloaded 的方法是否可以改變返回值的類(lèi)型這個(gè)問(wèn)題劝术,要看你倒底想問(wèn)什么呢?這個(gè)題目很模糊呆奕。如果幾個(gè) Overloaded 的方法的參數(shù)列表不一樣养晋,它們的返回者類(lèi)型當(dāng)然也可以不一樣。但我估計(jì)你想問(wèn)的問(wèn)題是:如果兩個(gè)方法的參數(shù)列表完全一樣登馒,是否可以讓它們的返回值不同來(lái)實(shí)現(xiàn)重載 Overload匙握。這是不行的,我們可以用反證法來(lái)說(shuō)明這個(gè)問(wèn)題陈轿,因?yàn)槲覀冇袝r(shí)候調(diào)用一個(gè)方法時(shí)也可以不定義返回結(jié)果變量圈纺,即不要關(guān)心其返回結(jié)果,例如麦射,我們調(diào)用 map.remove(key) 方法時(shí)蛾娶,雖然 remove 方法有返回值,但是我們通常都不會(huì)定義接收返回結(jié)果的變量潜秋,這時(shí)候假設(shè)該類(lèi)中有兩個(gè)名稱(chēng)和參數(shù)列表完全相同的方法蛔琅,僅僅是返回類(lèi)型不同,Java 就無(wú)法確定編程者倒底是想調(diào)用哪個(gè)方法了峻呛,因?yàn)樗鼰o(wú)法通過(guò)返回結(jié)果類(lèi)型來(lái)判斷罗售。

Override 可以翻譯為覆蓋,從字面就可以知道钩述,它是覆蓋了一個(gè)方法并且對(duì)其重寫(xiě)寨躁,以求達(dá)到不同的作用。對(duì)我們來(lái)說(shuō)最熟悉的覆蓋就是對(duì)接口方法的實(shí)現(xiàn)牙勘,在接口中一般只是對(duì)方法進(jìn)行了聲明职恳,而我們?cè)趯?shí)現(xiàn)時(shí),就需要實(shí)現(xiàn)接口聲明的所有方法方面。除了這個(gè)典型的用法以外放钦,我們?cè)诶^承中也可能會(huì)在子類(lèi)覆蓋父類(lèi)中的方法。在覆蓋要注意以下的幾點(diǎn):

1恭金、覆蓋的方法的標(biāo)志必須要和被覆蓋的方法的標(biāo)志完全匹配操禀,才能達(dá)到覆蓋的效果;

2横腿、覆蓋的方法的返回值必須和被覆蓋的方法的返回一致颓屑;

3辙培、覆蓋的方法所拋出的異常必須和被覆蓋方法的所拋出的異常一致,或者是其子類(lèi)邢锯;

4扬蕊、被覆蓋的方法不能為 private,否則在其子類(lèi)中只是新定義了一個(gè)方法丹擎,并沒(méi)有對(duì)其進(jìn)行覆蓋尾抑。

Overload 對(duì)我們來(lái)說(shuō)可能比較熟悉,可以翻譯為重載蒂培,它是指我們可以定義一些名稱(chēng)相同的方法再愈,通過(guò)定義不同的輸入?yún)?shù)來(lái)區(qū)分這些方法,然后再調(diào)用時(shí)护戳,VM 就會(huì)根據(jù)不同的參數(shù)樣式翎冲,來(lái)選擇合適的方法執(zhí)行。在使用重載要注意以下的幾點(diǎn):

1媳荒、在使用重載時(shí)只能通過(guò)不同的參數(shù)樣式抗悍。例如,不同的參數(shù)類(lèi)型钳枕,不同的參數(shù)個(gè)數(shù)缴渊,不同的參數(shù)順序(當(dāng)然,同一方法內(nèi)的幾個(gè)參數(shù)類(lèi)型必須不一樣鱼炒,例如可以是 fun(int,float)衔沼,但是不能 fun(int,int))
2昔瞧、不能通過(guò)訪問(wèn)權(quán)限指蚁、返回類(lèi)型、拋出的異常進(jìn)行重載自晰;

3凝化、方法的異常類(lèi)型和數(shù)目不會(huì)對(duì)重載造成影響;

4缀磕、對(duì)于繼承來(lái)說(shuō)缘圈,如果某一方法在父類(lèi)中是訪問(wèn)權(quán)限是 priavte劣光,那么就不能在子類(lèi)對(duì)其進(jìn)行重載袜蚕,如果定義的話(huà),也只是定義了一個(gè)新方法绢涡,而不會(huì)達(dá)到重載的效果牲剃。

3. Java 中,什么是構(gòu)造函數(shù)雄可?什么是構(gòu)造函數(shù)重載凿傅?什么是復(fù)制構(gòu)造函數(shù)缠犀?

當(dāng)新對(duì)象被創(chuàng)建的時(shí)候,構(gòu)造函數(shù)會(huì)被調(diào)用聪舒。每一個(gè)類(lèi)都有構(gòu)造函數(shù)辨液。在程序員沒(méi)有給類(lèi)提供構(gòu)造函數(shù)的情況下,Java 編譯器會(huì)為這個(gè)類(lèi)創(chuàng)建一個(gè)默認(rèn)的構(gòu)造函數(shù)箱残。

Java 中構(gòu)造函數(shù)重載和方法重載很相似滔迈。可以為一個(gè)類(lèi)創(chuàng)建多個(gè)構(gòu)造函數(shù)被辑。每一個(gè)構(gòu)造函數(shù)必須有它自己唯一的參數(shù)列表燎悍。

Java 不支持像 C++ 中那樣的復(fù)制構(gòu)造函數(shù),這個(gè)不同點(diǎn)是因?yàn)槿绻悴蛔约簩?xiě)構(gòu)造函數(shù)的情況下盼理,Java不會(huì)創(chuàng)建默認(rèn)的復(fù)制構(gòu)造函數(shù)谈山。

4. 構(gòu)造器 Constructor 是否可被 Override?

構(gòu)造器 Constructor 不能被繼承,因此不能重寫(xiě) Override宏怔,但可以被重載 Overload奏路。

5. Java 支持多繼承么?

不支持臊诊,Java 不支持多繼承思劳。每個(gè)類(lèi)都只能繼承一個(gè)類(lèi),但是可以實(shí)現(xiàn)多個(gè)接口妨猩。

6. 接口和抽象類(lèi)的區(qū)別是什么潜叛?

Java 提供和支持創(chuàng)建抽象類(lèi)和接口。它們的實(shí)現(xiàn)有共同點(diǎn)壶硅,不同點(diǎn)在于:

接口中所有的方法隱含的都是抽象的威兜。而抽象類(lèi)則可以同時(shí)包含抽象和非抽象的方法。

類(lèi)可以實(shí)現(xiàn)很多個(gè)接口庐椒,但是只能繼承一個(gè)抽象類(lèi)

類(lèi)如果要實(shí)現(xiàn)一個(gè)接口椒舵,它必須要實(shí)現(xiàn)接口聲明的所有方法。但是约谈,類(lèi)可以不實(shí)現(xiàn)抽象類(lèi)聲明的所有方法笔宿,當(dāng)然,在這種情況下棱诱,類(lèi)也必須得聲明成是抽象的泼橘。

抽象類(lèi)可以在不提供接口方法實(shí)現(xiàn)的情況下實(shí)現(xiàn)接口。

Java 接口中聲明的變量默認(rèn)都是 final 的迈勋。抽象類(lèi)可以包含非 final 的變量炬灭。

Java 接口中的成員函數(shù)默認(rèn)是 public 的。抽象類(lèi)的成員函數(shù)可以是 private靡菇,protected 或者是 public 重归。

接口是絕對(duì)抽象的米愿,不可以被實(shí)例化。抽象類(lèi)也不可以被實(shí)例化鼻吮,但是育苟,如果它包含 main 方法的話(huà)是可以被調(diào)用的。

也可以參考 JDK8 中抽象類(lèi)和接口的區(qū)別

7. 下列說(shuō)法正確的有()

A.class 中的 constructor 不可省略

B.constructor 必須與 class 同名椎木,但方法不能與class同名

C.constructor在一個(gè)對(duì)象被 new 時(shí)執(zhí)行

D.一個(gè) class 只能定義一個(gè) constructor

答案:C

解析:這里可能會(huì)有誤區(qū)宙搬,其實(shí)普通的類(lèi)方法是可以和類(lèi)名同名的,和構(gòu)造方法唯一的區(qū)分就是拓哺,構(gòu)造方法沒(méi)有返回值勇垛。

8. Java 接口的修飾符可以為?

A. private
B. protected
C. final
D. abstract

答案:CD

解析:接口很重要,為了說(shuō)明情況士鸥,這里稍微啰嗦點(diǎn):

(1)接口用于描述系統(tǒng)對(duì)外提供的所有服務(wù),因此接口中的成員常量和方法都必須是公開(kāi)(public)類(lèi)型的,確保外部使用者能訪問(wèn)它們闲孤;

(2)接口僅僅描述系統(tǒng)能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;

(3)接口不涉及和任何具體實(shí)例相關(guān)的細(xì)節(jié),因此接口沒(méi)有構(gòu)造方法,不能被實(shí)例化,沒(méi)有實(shí)例變量烤礁,只有靜態(tài)(static)變量讼积;

(4)接口的中的變量是所有實(shí)現(xiàn)類(lèi)共有的,既然共有脚仔,肯定是不變的東西勤众,因?yàn)樽兓臇|西也不能夠算共有。所以變量是不可變(final)類(lèi)型鲤脏,也就是常量了们颜。

(5) 接口中不可以定義變量?如果接口可以定義變量猎醇,但是接口中的方法又都是抽象的窥突,在接口中無(wú)法通過(guò)行為來(lái)修改屬性。有的人會(huì)說(shuō)了硫嘶,沒(méi)有關(guān)系阻问,可以通過(guò) 實(shí)現(xiàn)接口的對(duì)象的行為來(lái)修改接口中的屬性。這當(dāng)然沒(méi)有問(wèn)題沦疾,但是考慮這樣的情況称近。如果接口 A 中有一個(gè)public 訪問(wèn)權(quán)限的靜態(tài)變量 a。按照 Java 的語(yǔ)義哮塞,我們可以不通過(guò)實(shí)現(xiàn)接口的對(duì)象來(lái)訪問(wèn)變量 a刨秆,通過(guò) A.a = xxx; 就可以改變接口中的變量 a 的值了。正如抽象類(lèi)中是可以這樣做的彻桃,那么實(shí)現(xiàn)接口 A 的所有對(duì)象也都會(huì)自動(dòng)擁有這一改變后的 a 的值了坛善,也就是說(shuō)一個(gè)地方改變了 a晾蜘,所有這些對(duì)象中 a 的值也都跟著變了邻眷。這和抽象類(lèi)有什么區(qū)別呢眠屎,怎么體現(xiàn)接口更高的抽象級(jí)別呢,怎么體現(xiàn)接口提供的統(tǒng)一的協(xié)議呢肆饶,那還要接口這種抽象來(lái)做什么呢改衩?所以接口中 不能出現(xiàn)變量,如果有變量驯镊,就和接口提供的統(tǒng)一的抽象這種思想是抵觸的葫督。所以接口中的屬性必然是常量,只能讀不能改板惑,這樣才能為實(shí)現(xiàn)接口的對(duì)象提供一個(gè)統(tǒng) 一的屬性橄镜。

通俗的講,你認(rèn)為是要變化的東西冯乘,就放在你自己的實(shí)現(xiàn)中洽胶,不能放在接口中去,接口只是對(duì)一類(lèi)事物的屬性和行為更高層次的抽象裆馒。對(duì)修改關(guān)閉姊氓,對(duì)擴(kuò)展(不同的實(shí)現(xiàn) implements)開(kāi)放,接口是對(duì)開(kāi)閉原則的一種體現(xiàn)喷好。

所以:

接口的方法默認(rèn)是 public abstract翔横;

接口中不可以定義變量即只能定義常量(加上final修飾就會(huì)變成常量)。所以接口的屬性默認(rèn)是 public static final 常量梗搅,且必須賦初值禾唁。

注意:final 和 abstract 不能同時(shí)出現(xiàn)。

9. 下面是 People 和 Child 類(lèi)的定義和構(gòu)造方法无切,每個(gè)構(gòu)造方法都輸出編號(hào)蟀俊。在執(zhí)行 new Child("mike") 的時(shí)候都有哪些構(gòu)造方法被順序調(diào)用?請(qǐng)選擇輸出結(jié)果

class People {
    String name;

    public People() {
        System.out.print(1);
    }

    public People(String name) {
        System.out.print(2);
        this.name = name;
    }
}

class Child extends People {
    People father;

    public Child(String name) {
        System.out.print(3);
        this.name = name;
        father = new People(name + ":F");
    }

    public Child() {
        System.out.print(4);
    }
    
}

A. 312
B. 32
C. 432
D. 132

答案:D

解析:考察的又是父類(lèi)與子類(lèi)的構(gòu)造函數(shù)調(diào)用次序订雾。在 Java 中肢预,子類(lèi)的構(gòu)造過(guò)程中必須調(diào)用其父類(lèi)的構(gòu)造函數(shù),是因?yàn)橛欣^承關(guān)系存在時(shí)洼哎,子類(lèi)要把父類(lèi)的內(nèi)容繼承下來(lái)烫映。但如果父類(lèi)有多個(gè)構(gòu)造函數(shù)時(shí),該如何選擇調(diào)用呢噩峦?

第一個(gè)規(guī)則:子類(lèi)的構(gòu)造過(guò)程中锭沟,必須調(diào)用其父類(lèi)的構(gòu)造方法。一個(gè)類(lèi)识补,如果我們不寫(xiě)構(gòu)造方法族淮,那么編譯器會(huì)幫我們加上一個(gè)默認(rèn)的構(gòu)造方法(就是沒(méi)有參數(shù)的構(gòu)造方法),但是如果你自己寫(xiě)了構(gòu)造方法,那么編譯器就不會(huì)給你添加了祝辣,所以有時(shí)候當(dāng)你 new 一個(gè)子類(lèi)對(duì)象的時(shí)候贴妻,肯定調(diào)用了子類(lèi)的構(gòu)造方法,但是如果在子類(lèi)構(gòu)造方法中我們并沒(méi)有顯示的調(diào)用基類(lèi)的構(gòu)造方法蝙斜,如:super(); 這樣就會(huì)調(diào)用父類(lèi)沒(méi)有參數(shù)的構(gòu)造方法名惩。

第二個(gè)規(guī)則:如果子類(lèi)的構(gòu)造方法中既沒(méi)有顯示的調(diào)用基類(lèi)構(gòu)造方法,而基類(lèi)中又沒(méi)有無(wú)參的構(gòu)造方法孕荠,則編譯出錯(cuò)娩鹉,所以,通常我們需要顯示的:super(參數(shù)列表)稚伍,來(lái)調(diào)用父類(lèi)有參數(shù)的構(gòu)造函數(shù)弯予,此時(shí)無(wú)參的構(gòu)造函數(shù)就不會(huì)被調(diào)用。

總之个曙,一句話(huà):子類(lèi)沒(méi)有顯示調(diào)用父類(lèi)構(gòu)造函數(shù)熙涤,不管子類(lèi)構(gòu)造函數(shù)是否帶參數(shù)都默認(rèn)調(diào)用父類(lèi)無(wú)參的構(gòu)造函數(shù),若父類(lèi)沒(méi)有則編譯出錯(cuò)困檩。

10. 構(gòu)造器(constructor)是否可被重寫(xiě)(override)?

答:構(gòu)造器不能被繼承祠挫,因此不能被重寫(xiě),但可以被重載悼沿。

11. 兩個(gè)對(duì)象值相同(x.equals(y) == true)等舔,但卻可有不同的 hash code,這句話(huà)對(duì)不對(duì)糟趾?

答:不對(duì)慌植,如果兩個(gè)對(duì)象 x 和 y 滿(mǎn)足 x.equals(y) == true,它們的哈希碼(hash code)應(yīng)當(dāng)相同义郑。Java 對(duì)于 eqauls 方法和 hashCode 方法是這樣規(guī)定的:(1)如果兩個(gè)對(duì)象相同(equals 方法返回 true )蝶柿,那么它們的 hashCode 值一定要相同;(2)如果兩個(gè)對(duì)象的 hashCode 相同非驮,它們并不一定相同交汤。當(dāng)然,你未必要按照要求去做劫笙,但是如果你違背了上述原則就會(huì)發(fā)現(xiàn)在使用容器時(shí)芙扎,相同的對(duì)象可以出現(xiàn)在 Set 集合中,同時(shí)增加新元素的效率會(huì)大大下降(對(duì)于使用哈希存儲(chǔ)的系統(tǒng)填大,如果哈希碼頻繁的沖突將會(huì)造成存取性能急劇下降)戒洼。

補(bǔ)充:關(guān)于 equals 和 hashCode 方法,很多 Java 程序都知道允华,但很多人也就是僅僅知道而已圈浇,在 Joshua Bloch 的大作《Effective Java》(很多軟件公司寥掐,《Effective Java》、《Java 編程思想》以及《重構(gòu):改善既有代碼質(zhì)量》是 Java 程序員必看書(shū)籍磷蜀,如果你還沒(méi)看過(guò)召耘,那就趕緊去亞馬遜買(mǎi)一本吧)中是這樣介紹 equals 方法的:首先 equals 方法必須滿(mǎn)足自反性(x.equals(x) 必須返回true)、對(duì)稱(chēng)性(x.equals(y) 返回true時(shí)蠕搜,y.equals(x) 也必須返回 true)怎茫、傳遞性(x.equals(y)和y.equals(z)都返回 true 時(shí)收壕,x.equals(z)也必須返回true)和一致性(當(dāng)x和y引用的對(duì)象信息沒(méi)有被修改時(shí)妓灌,多次調(diào)用x.equals(y)應(yīng)該得到同樣的返回值),而且對(duì)于任何非 null 值的引用 x蜜宪,x.equals(null) 必須返回 false虫埂。實(shí)現(xiàn)高質(zhì)量的 equals 方法的訣竅包括:

  1. 使用 == 操作符檢查“參數(shù)是否為這個(gè)對(duì)象的引用”;
  2. 使用 instanceof 操作符檢查“參數(shù)是否為正確的類(lèi)型”圃验;
  3. 對(duì)于類(lèi)中的關(guān)鍵屬性掉伏,檢查參數(shù)傳入對(duì)象的屬性是否與之相匹配;
  4. 編寫(xiě)完 equals 方法后澳窑,問(wèn)自己它是否滿(mǎn)足對(duì)稱(chēng)性斧散、傳遞性、一致性摊聋;
  5. 重寫(xiě) equals 時(shí)總是要重寫(xiě) hashCode鸡捐;
  6. 不要將 equals 方法參數(shù)中的 Object 對(duì)象替換為其他的類(lèi)型,在重寫(xiě)時(shí)不要忘掉 @Override 注解麻裁。

12. 接口是否可繼承(extends)接口? 抽象類(lèi)是否可實(shí)現(xiàn)(implements)接口? 抽象類(lèi)是否可繼承具體類(lèi)(concrete class)?

答:接口可以繼承接口箍镜。抽象類(lèi)可以實(shí)現(xiàn)(implements)接口,抽象類(lèi)可繼承具體類(lèi)煎源,但前提是具體類(lèi)必須有明確的構(gòu)造函數(shù)色迂。

13. 指出下面程序的運(yùn)行結(jié)果:

class A{  
  
    static{  
        System.out.print("1");  
    }  
  
    public A(){  
        System.out.print("2");  
    }  
}  
  
class B extends A{  
  
    static{  
        System.out.print("a");  
    }  
  
    public B(){  
        System.out.print("b");  
    }  
}  
  
public class Hello{  
  
    public static void main(String[] args){  
        A ab = new B();  
        ab = new B();  
    }  
  
}  

答:執(zhí)行結(jié)果:1a2b2b。創(chuàng)建對(duì)象時(shí)構(gòu)造器的調(diào)用順序是:先初始化靜態(tài)成員手销,然后調(diào)用父類(lèi)構(gòu)造器歇僧,再初始化非靜態(tài)成員,最后調(diào)用自身構(gòu)造器锋拖。

14. Class.forName(String className)這個(gè)方法的作用

答:通過(guò)類(lèi)的全名獲得該類(lèi)的類(lèi)對(duì)象

15. 什么是 AOP 和 OOP馏慨,IOC 和 DI 有什么不同?

答:

1)面向?qū)ο缶幊蹋∣bject Oriented Programming,OOP姑隅,面向?qū)ο蟪绦蛟O(shè)計(jì))是一種計(jì)算機(jī)編程架構(gòu)写隶。AOP 是 OOP 的延續(xù),是 Aspect Oriented Programming 的縮寫(xiě)讲仰,意思是面向方面編程慕趴。 將通用需求功能從不相關(guān)類(lèi)之中分離出來(lái);同時(shí),能夠使得很多類(lèi)共享一個(gè)行為冕房,一旦行為發(fā)生變化躏啰,不必修改很多類(lèi),只要修改這個(gè)行為就可以耙册。AOP 就是這種實(shí)現(xiàn)分散關(guān)注的編程方法给僵,它將“關(guān)注”封裝在“方面”中

2)控制反轉(zhuǎn) IOC(Inversion of Control) 控制指的就是程序相關(guān)類(lèi)之間的依賴(lài)關(guān)系.傳統(tǒng)觀念設(shè)計(jì)中,

通常由調(diào)用者來(lái)創(chuàng)建被調(diào)用者的實(shí)例, 在 Spring 里,創(chuàng)建被調(diào)用者的工作不再由調(diào)用者來(lái)完成,而是由 Spring 容器完成,依賴(lài)關(guān)系被反轉(zhuǎn)了详拙,稱(chēng)為控制反轉(zhuǎn)帝际,目的是為了獲得更好的擴(kuò)展性和良好的可維護(hù)性。依賴(lài)注入(Dependency injection)創(chuàng)建被調(diào)用者的工作由 Spring 容器完成饶辙,然后注入調(diào)用者蹲诀,因此也稱(chēng)依賴(lài)注入∑浚控制反轉(zhuǎn)和依賴(lài)注入是同一個(gè)概念脯爪。

16. 判斷下列語(yǔ)句是否正確,如果有錯(cuò)誤矿微,請(qǐng)指出錯(cuò)誤所在痕慢?

interface A{

int add(final A a);

}

class B implements A{

long add(final A a){

return this.hashCode() + a.hashCode();

}

}

答:返回值不是 long 類(lèi)型


更多精彩圖文IT課程請(qǐng)移步: wiki.jikexueyuan.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者

  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市涌矢,隨后出現(xiàn)的幾起案子掖举,更是在濱河造成了極大的恐慌,老刑警劉巖蒿辙,帶你破解...
    沈念sama閱讀 222,807評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拇泛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡思灌,警方通過(guò)查閱死者的電腦和手機(jī)俺叭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)泰偿,“玉大人熄守,你說(shuō)我怎么就攤上這事『孽耍” “怎么了裕照?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,589評(píng)論 0 363
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)调塌。 經(jīng)常有香客問(wèn)我晋南,道長(zhǎng),這世上最難降的妖魔是什么羔砾? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,188評(píng)論 1 300
  • 正文 為了忘掉前任负间,我火速辦了婚禮偶妖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘政溃。我一直安慰自己趾访,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布董虱。 她就那樣靜靜地躺著扼鞋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪愤诱。 梳的紋絲不亂的頭發(fā)上云头,一...
    開(kāi)封第一講書(shū)人閱讀 52,785評(píng)論 1 314
  • 那天,我揣著相機(jī)與錄音转锈,去河邊找鬼盘寡。 笑死楚殿,一個(gè)胖子當(dāng)著我的面吹牛撮慨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播脆粥,決...
    沈念sama閱讀 41,220評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼砌溺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了变隔?” 一聲冷哼從身側(cè)響起规伐,我...
    開(kāi)封第一講書(shū)人閱讀 40,167評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎匣缘,沒(méi)想到半個(gè)月后猖闪,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,698評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡肌厨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評(píng)論 3 343
  • 正文 我和宋清朗相戀三年培慌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柑爸。...
    茶點(diǎn)故事閱讀 40,912評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吵护,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出表鳍,到底是詐尸還是另有隱情馅而,我是刑警寧澤,帶...
    沈念sama閱讀 36,572評(píng)論 5 351
  • 正文 年R本政府宣布譬圣,位于F島的核電站瓮恭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏厘熟。R本人自食惡果不足惜屯蹦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評(píng)論 3 336
  • 文/蒙蒙 一诸衔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧颇玷,春花似錦笨农、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,746評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至空郊,卻和暖如春份招,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狞甚。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,859評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工锁摔, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人哼审。 一個(gè)月前我還...
    沈念sama閱讀 49,359評(píng)論 3 379
  • 正文 我出身青樓谐腰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親涩盾。 傳聞我的和親對(duì)象是個(gè)殘疾皇子十气,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評(píng)論 2 361

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法春霍,內(nèi)部類(lèi)的語(yǔ)法砸西,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法址儒,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,668評(píng)論 18 399
  • (一)Java部分 1芹枷、列舉出JAVA中6個(gè)比較常用的包【天威誠(chéng)信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,119評(píng)論 0 62
  • 標(biāo)簽(空格分隔): Java面向?qū)ο?1. 面向?qū)ο蟮奶卣饔心男┓矫妫?抽象:抽象就是找出一些事物的相似和共性之處...
    outSiderYN閱讀 6,368評(píng)論 0 6
  • 永遠(yuǎn)不做違法的事情,違法莲趣,掙快錢(qián)鸳慈,本質(zhì)上都是貪婪。 人性本來(lái)就是貪婪妖爷,我們受教育的意義就在于超越人性的不足蝶涩,漸漸成...
    伍大大閱讀 274評(píng)論 0 0
  • 愛(ài)是什么?父母之外的愛(ài)是什么絮识?我不止一次這么問(wèn)自己绿聘。愛(ài)會(huì)是“窈窕淑女,君子好逑”嗎次舌?愛(ài)會(huì)是“天長(zhǎng)地久有時(shí)盡熄攘,此恨...
    白蒜蒜閱讀 1,416評(píng)論 0 4