-
什么是方法重寫?
子類與父類的成員方法返回值,方法名稱凄硼,參數(shù)類型及個數(shù)完全相同,唯一不同的是方法實現(xiàn)內(nèi)容
-
方法重寫的判斷依據(jù)是什么尉间?
重寫方法和被重寫的方法必須具有相同的方法名偿乖,相同的參數(shù)列表和相同的返回值類型击罪,重寫方法的訪問修飾符必須大于被重寫方法的訪問修飾符
-
繼承有什么好處?
(1)提高了代碼的復 用性贪薪,子類繼承了父類的所有方法和屬性媳禁,所以子類不用再重復定義
(2)提高了代碼的可擴展性,子類可以寫自己獨特的屬性和方法画切,在父類的基礎(chǔ)上進行擴展
-
Java是單繼承還是多繼承竣稽?
單繼承
定義父類 Father, 有 age,name 屬性,定義speak()方法 打印 介紹信息霍弹。定義 2 個子類毫别,Boy 和 gril兩個子類,分別實現(xiàn)重寫speak() 方法典格。
-
一個類沒有繼承任何類岛宦,有父類么?
有 object
-
方法重載和方法重寫有什么不同耍缴?
重寫是子類的方法覆蓋父類的方法砾肺,要求方法名和參數(shù)都相同
重載是在同一個類中的兩個或兩個以上的方法,擁有相同的方法名防嗡,但是參數(shù)卻不相同变汪,方法體也不相同,同一個類中 -
為什么很多類要重寫 equals 方法 ?
equals首先判斷兩個對象的內(nèi)存地址是否相同蚁趁,再判斷是否是同一地址裙盾,最后再判斷里面的屬性值是否相等
為什么Integer 要將 -127 ~ 128 緩存起來 ?
- 請問以下哪個程序代碼體現(xiàn)了對象之間的繼承(is a)關(guān)系?B
A.
public class Color {}
public class Shape {
private Color color;
}
B.
public class Component {}
public class Cpmtaomer extends Component {
private Component[] children;
}
C.
public class Species{}
public class Animal{
private Species species;
}
D.
public class Animal{
private Species species;
public class Species{}
}
-
**以下代碼的執(zhí)行結(jié)果A
public class Example { String s = "Outer"; public static void main(String[] args) { S2 s2 = new S2(); s2.display(); } } class S1 { String s = "S1"; void display() { System.out.println(s); } } class S2 extends S1 { String s = "S2"; }
A. S1
B. S2
C. null
D. Outer
-
關(guān)于構(gòu)造器說法錯誤的是番官?A
A. 構(gòu)造器不屬于類成員方法童芹,因此構(gòu)造器不能被繼承
B. 只有構(gòu)造器才能擁有和類名相同的方法名
C. 一個類可以擁有多個重載的構(gòu)造器
D. 在子類中調(diào)用父類的非默認構(gòu)造器,必須使用super(...)語句鲤拿,而且該語句必須位于子類構(gòu)造器的第一行
-
現(xiàn)有如下代碼B
class Super { public float getNum() { return 3.0f; } } class Sub extends Super { // 空白處 }
請問以下哪個語句放置在注釋的空白處會引起編譯錯誤假褪?
A. public float getNum() { return 4.0f; }
B. public void getNum(){}
C. public void getNum(double d){}
D. public double getNum(float d) { return 4.0; }
-
請寫出下面的程序的運行結(jié)果
package demo; class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println("I'm A class"); } static { System.out.println("static A"); } } public class HelloB extends HelloA { static { System.out.println("static B"); } { System.out.println("I'm B class"); } public HelloB() { System.out.println("HelloB"); } public static void main(String[] args) { new HelloB(); } } startic A startic B I'm A class HelloA I'm B class HelloB 靜態(tài)代碼塊最先執(zhí)行 普通代碼塊 構(gòu)造方法 父類比子類先創(chuàng)建
-
請寫出下面的代碼運行的結(jié)果,并寫出原因
int a = 100; int b = 100; System.out.println( a == b ) Integer c = 100; Integer d = 100; System.out.println( c == d ) System.out.println( c.equals(d) )
int a = 1000; int b = 1000; System.out.println( a == b ) Integer c = 1000; Integer d = 1000; System.out.println( c == d ) System.out.println( c.equals(d) )
true
true
true
true
false
true
基本數(shù)據(jù)類型用==比較值
1.==判斷基本數(shù)據(jù)類型的值是否相等 判斷引用數(shù)據(jù)類型 判斷地址是否相等