java課后習(xí)題答案
java課本課后習(xí)題答案
答:父子類在同一包中時子類可以繼承父類的友好成員。
2、子類通過什么辦法,可以隱藏繼承的成員變量。
答:子類成員變量與父類成員變量同名。
3、子類重寫繼承方法的規(guī)則是什么?
答:重寫隱藏父類的方法需:返回的數(shù)據(jù)類型相同,參數(shù)的個數(shù)相同,并且類型相同。 如果重寫父類的方法后參數(shù)的個數(shù)或類型不同會出現(xiàn)子類方法的重載。
4.子類的構(gòu)造方法的第一條語句是什么?
答:如果需要調(diào)用父類構(gòu)造方法,則應(yīng)是用super關(guān)鍵詞調(diào)用父類的構(gòu)造方法。
5、子類一旦重寫了繼承的方法,就會隱藏繼承的方法。是這樣嗎?
答:不一定。在參數(shù)的個數(shù)或類型不同時會產(chǎn)生重載。如果只有返回值的類型不同,將會產(chǎn)生編譯錯誤。
(5)子類隱藏父類的方法,參數(shù)必須______相同并且__________相同.
答: 個數(shù) ,類型
6、子類重寫繼承方法時,可以降低方法的權(quán)限嗎?
答:重寫繼承方法時不能降低訪問權(quán)限。
7、簡述關(guān)鍵字super的用法。
答:1)子類調(diào)用父類的構(gòu)造方法。
2)子類對象引用被隱藏了的父類方法,或成員變量。
8.假設(shè)父類有一個方法:
Public double f(double x, double y){
return x+y; }
是否允許子類再聲明如下的方法:
Public float f(double x, double y){
return 23; }
答:不允許。
9、父類的final方法可以被子類重寫嗎?
答:不可以
10、什么類中可以有abstract方法?
答:被abstract修飾的類。接口中也可以有abstract方法
11、什么叫做對象的上轉(zhuǎn)型對象?
答:用子類的構(gòu)造方法構(gòu)造出來的對象,賦值給父類對象。
12、什么叫接口回調(diào)?
答:用實現(xiàn)接口的類創(chuàng)建的對象,賦值給該接口聲明的接口變量。
13、與類有關(guān)的匿名類一定是該類的子類嗎?與接口有關(guān)的匿名類一定是實現(xiàn)該接口的一個類嗎?
答:一定,因為類創(chuàng)建對象時,除了構(gòu)造方法還有類體,此類體被認(rèn)為是該類的一個子類去掉類聲明后的類體。即匿名類,匿名類就是一個子類。與接口的匿名類相同。一定是子類。
14、怎樣聲明一個泛型類?
答:我們可以這樣聲明一個泛型類:
class A 其中A時泛型的名稱,E是其中的泛型,即我們沒有指定E是何種類型的數(shù)據(jù),它可以是任何對象或接口,但不能是基本數(shù)據(jù)類型。
15、閱讀下列程序,并說明輸出結(jié)果。
class NegativeIntegerException extends Exception{
String message;
public NegativeIntegerException(){
message="方法的參數(shù)值不是正整數(shù)"; }
public String toString(){
return message; } }
class MaxCommonDivisor{
public int getMaxCommonDivisor(int a, int b)throws NegativeIntegerException{
if(a<0||b<0)
throw new NegativeIntegerException();
int r=0;
if(a>b){
int t=a; a=b; b=t; }
r=a%b;
while(r!=0){
a=b;
b=r;
r=a%b; }
return b; } }
class MinCommonMultiple extends MaxCommonDivisor{
public int getMinCommonMultiple(int a, int b)throws NegativeIntegerException{
if(a<0||b<0)
throw new NegativeIntegerException();
int y=0;
int x=getMaxCommonDivisor(a,b);
y=(a*b)/x;
return y; } }
public class Example{
public static void main (String arg[]){
int maxCommonDivisor, minCommonMultiple;
MaxCommonDivisor max=new MaxCommonDivisor();
MinCommonMultiple min = new MinCommonMultiple();
try{
maxCommonDivisor=max.getMaxCommonDivisor(18,12);
System.out.println("最大公約數(shù):"+ maxCommonDivisor);
minCommonMultiple=min.getMinCommonMultiple(18,12);
System.out.println("最小公倍數(shù):"+minCommonMultiple);
maxCommonDivisor=max.getMaxCommonDivisor(-64,48);
System.out.println("最大公約數(shù):"+maxCommonDivisor); }
catch(NegativeIntegerException e){
System.out.println(e.toString()); } } }
3。編寫一個類要求實現(xiàn)一個接口,該接口有3個abstract方法:
Public abstract void f( int x);
Public abstract void g(int x, int y);
Public abstract double h(double x);
要求在應(yīng)用程序主類中使用該類創(chuàng)建對象,并使用接口回調(diào)調(diào)用方法f(), g() 和h(). 解:
interface A{
public abstract void f(int x);
public abstract void g(int x,int y); public abstract double h(double x); }
class A1 implements A{
public void f(int x){
System.out.println(x); }
public void g(int x,int y){
int z=x+y;
System.out.println(z); }
public double h(double x){ return x*x; } }
class A2 implements A{
public void f(int x){
System.out.println("Hello:"+x); }
public void g(int x,int y){
int z=x-y;
System.out.println(z); }
