- 從零開始學Java Web開發
- 孫更新等編著
- 581字
- 2018-12-27 13:06:01
3.4 習題
一、選擇題
1.有關Demo類,下列哪句描述是正確的()
public class Demo extends Base{ private int count; public Demo(){ System.out.println("A Demo object has been created"); } protected void addOne() {count++; } }
A.當創建一個Demo類的實例對象時,count的值為0
B.當創建一個Demo類的實例對象時,count的值是不確定的
C.父類對象中可以包含改變count值的方法
D.Demo的子類對象可以訪問count
2.當編譯和運行下列程序段時,會發生下列哪能種情況()
class Base {} class Sub extends Base {} class Sub2 extends Base {} public class CEx{ public static void main(String argv[]){ Base b = new Base(); Sub s = (Sub) b; } }
A.通過編譯并正常運行B.編譯時出現例外C.編譯通過,運行時出現例外
3.如果任何包中的子類都能訪問父類中的成員,那么應使用哪個限定詞()
A.public B.private C.protected D.transient
4.下面的哪個選項是正確的()
class ExSuper{ String name; String nick_name; public ExSuper(String s,String t){ name = s; nick_name = t; } public String toString(){ return name; } } public class Example extends ExSuper{ public Example(String s,String t){ super(s,t); } public String toString(){ return name +"a.k.a"+nick_name; } public static void main(String args[]){ ExSuper a = new ExSuper("First","1st"); ExSuper b = new Example("Second","2nd"); System.out.println("a is"+a.toString()); System.out.println("b is"+b.toString()); } }
A.編譯時會出現異常
B.運行結果為:
a is First b is second
C.運行結果為:
a is First b is Secong a.k.a 2nd
D.運行結果為:
a is First a.k.a 1nd b is Second a.k.a 2nd
5.運行下列程序后的結果是()
abstract class MineBase { abstract void amethod(); static int i; } public class Mine extends MineBase { public static void main(String argv[]){ int[] ar = new int[5]; for(i = 0;i < ar.length;i++) System.out.println(ar[i]); } }
A.打印5個0
B.編譯出錯,數組ar[]必須初始化
C.編譯出錯,Mine應聲明為abstract
D.出現IndexOutOfBoundes的異常
二、簡答題
1.簡單說明抽象類和接口之間的區別。
2.一個類中的多個方法在什么情況下算是重載?
三、上機題
1.定義表示學生的Student類和表示教師的Teacher類。
2.定義一個實現打印信息功能的接口,并使Student類和Teacher類都實現該接口,從而實現打印學生和教師信息的功能。