java继承接口和泛型,JavaSE习题 继承接口和泛型
問答題:
1.子類在什么情況下可以繼承父類友好成員?
答:在同一個包內
2.子類通過怎樣的方法可以隱藏繼承的成員變量?
答:聲明一個與父類相同變量名的成員變量
3.子類重寫繼承的方法原則是什么?
答:保證方法的名字,類型,參數個數,類型同父類完全相同
4.子類的構造方法第一條語句是什么?
答:super(),如果不寫,編譯器也會自動調用
5.子類對象一單重寫了繼承的方法,就會隱藏繼承的方法,對嗎?
答:對
6.子類重寫繼承方法時,可以降低方法的訪問權限嘛?
答:不可以,只可以增加權限
7.簡述super關鍵字用法
答:super關鍵字是一個引用超類的對象
8.假設父類有個方法
public double f(double x,double y){
return x+y;
}
是否允許子類再次聲明下面方法
public float f(double x,double y){
return 23;
}
答:允許,該overwrite就隱藏了父類的方法
9.父類的final方法可以被子類重寫嘛
答:不可以
10.什么類可以有抽象方法?
答:抽象類
11.什么叫對象的上轉型對象?
答:子類對象引用放入父類的聲明
12.什么叫接口回調?
答:子類接口引用調入父類接口聲明
13.與類有關的匿名類一定是該類的一個子類嗎?與接口有關的匿名類一定是實現接口的子類嗎?
答:一定是,一定是
14.怎樣聲明一個泛型類?怎樣評價SDK1.5新出的泛型?
答:使用尖括號,對未來的實際開發有了很大改善吧
15閱讀下列程序,寫出下列程序的結果。
程序在書本上
答:最大公約數:6
最小公倍數:36
最大公約數:方法的參數值不是正整數
16下列程序中,錯誤代碼是哪一個?
答:在classA中,getFloat方法是友好型,所以B繼承A類后,getFloat方法只能擴大權限,不能縮小為private類型
作業題
1.編寫一個類,該類中有如下方法;
public int f(int a,int b){
}//要求找出ab的最大公約數
編寫一個該類子類,要求子類重寫方法f(),而且重寫的方法將返回兩個整數的最小公倍數
要求:在重寫方法的方法體中首先調用被隱藏的方法返回ab的最大公約數m,然后將(a*b)/m的值返回,在應用的程序的主類中分別用父類和子類創建對象,并分別調用方法f()計算兩個正整數的最大公約數和最小公倍數
public classDemo03 {public static voidmain(String[] args) {
System.out.println(new Function().f(12, 18));
System.out.println(new SonFunction().f(12, 18));
}
}classFunction{public int f(int a,intb) {if(a>b) {int temp=a;
a=b;
b=temp;
}int fin = 0;for(int i=1;i<=a;i++) {if(a%i==0&&b%i==0) {
fin=i;
}
}returnfin;
}
}classSonFunction extends Function{
@Overridepublic int f(int a, intb) {int m=super.f(a, b);return (a*b)/m;
}
}
2.編寫一個抽象類,該類有3個抽象方法
public abstract void f(int x);
public abstract void g(int x,int y);
public abstract double h(double x);
然后分別給出這個抽象類的3個子類
要求,在應用程序的主類中創建子類對象,再向上轉型對象調用方法f,g,h
public classDemo03 {public static voidmain(String[] args) {
A a=newC();
a.f(1);
a.g(1, 1);
a.h(1);
}
}interfaceA{public abstract void f(intx);public abstract void g(int x,inty);public abstract double h(doublex);
}classC implements A{
@Overridepublic void f(intx) {
System.out.println("This is f()");
}
@Overridepublic void g(int x, inty) {
System.out.println("This is g");
}
@Overridepublic double h(doublex) {
System.out.println("This is h");return 0;
}
}
4.舉例說明匿名類的用法
直接new出來,不需要后續的調用的時候可以這樣
5.編寫一個異常類,并寫出一個產生異常的方法,在應用程序中測試異常
public classDemo04 {public static voidmain(String[] args) {
String a="嚶嚶嚶\n";
String b="嚶嚶嚶\n";
String c="我就不嚶嚶嚶\n";try{newRetalkTest().ReTalk(b, c);newRetalkTest().ReTalk(a, b);
}catch(RetalkException e) {
e.printStackTrace();
}
}
}classRetalkException extends Exception{
String message="";publicRetalkException(){
message="復讀機異常\n";
}
@OverridepublicString toString() {returnmessage;
}
}classRetalkTest{public voidReTalk(String a,String b) throws RetalkException {
System.out.println(a+b);if(a.equals(b)) {throw newRetalkException();
}else{
System.out.println("還好沒有復讀\n");
}
}
}
總結
以上是生活随笔為你收集整理的java继承接口和泛型,JavaSE习题 继承接口和泛型的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: $query php,phpQuery让
- 下一篇: java 四字节uid,Java入门教程
