Java 試題三
1、java類是否可以多繼承,怎么實現多繼承?
答:java沒有多繼承,但可以通過接口的形式來達到多繼承的目地。
2、我比較兩個String總是false,但是它們明明都是”abc” !
答:比較String一定要使用equals或equalsIgnoreCase方法,不要使用 == !
==比較的是兩個引用(變量)是否指向了同一個對象,而不是比較其內容。
3、int 和 Integer 有什么區別
答:Java 提供兩種不同的類型:引用類型和原始類型(或內置類型)。
Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。
原始類型封裝類,boolean-Boolean,char-Character,byte-Byte,short-Short,int-Integer,long-Long,float-Float,double-Double
引用類型和原始類型的行為完全不同,并且它們具有不同的語義。
引用類型和原始類型具有不同的特征和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,
當引用類型和原始類型用作某個類的實例數據時所指定的缺省值。對象引用實例變量的缺省值為 null,而原始類型實例變量的缺省值與它們的類型有關.
4、重載(overload)和重寫(overried,有的書也叫做“覆蓋”)的區別?Overload的方法是否可以改變返回值的類型?
答:方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類
與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定
義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這
個方法時,將調用子類中的定義,對它而言,父類中的定義如同被”屏蔽”了。如果在一個類中定
義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。
Overloaded的方法是可以改變返回值的類型
5、選擇題,寫出錯誤答案錯誤的原因,用單行注釋的方式。
class Demo{int show(int a,int b){return 0;}
}
下面那些函數可以存在于Demo的子類中。
A.public int show(int a,int b){return 0;}//可以,覆蓋。
B.private int show(int a,int b){return 0;}//不可以,權限不夠。
C.private int show(int a,long b){return 0;}//可以,和父類不是一個函數。沒有覆蓋,相當于重載。
D.public short show(int a,int b){return 0;}//不可以,因為該函數不可以和給定函數出現在同一類中,或者子父類中。
E.static int show(int a,int b){return 0;}//不可以,靜態只能覆蓋靜態。