}catch(Exception e){ e.printStackTrace(); return 0; } }
public static String getString(){ try{
return(inputStream.readLine()); }catch(IOException e){return \ } }
第四章课后习题答案
1.子类将继承父类所有的属性和方法吗?为什么?
答:不,子类不能直接访问从父类中继承的私有属性及方法,但可以对公有及保护方法进行访问。
2.方法的覆盖与方法的重载有何不同?
答:覆盖是运用在子类中实现与父类相同的功能,但采用不同的算法或公式;在名字相同的方法中,要做比父类更多的事情;在子类中需要取消从父类继承的方法。
3.声明两个带有无参构造方法的两个类A和B,声明A的子类C,并且声明B为C的一个成员,不声明C 的构造方法。编写测试代码,生成类C的实例对象,并观察结果。 //A类 public class A { } //B类 public class B { } //C类
public class C extends A { } //测试类
public class test4_3 {
public static void main (String args[]) { B b = new B (); public B () { }
System.out.println (\输出B类\public A () { }
System.out.println (\输出A类\
}
}
C c = new C();
运行结果:
4.声明一个基类A,它只有一种非默认构造方法;声明A的子类B,B具有默认方法及非默认方法,并在B的构造方法中调用基类A的构造方法。 //A类
public class A {
public A (String lin) {
System.out.println(\类的非默认构造方法 \+lin); } }//B类
public class B extends A{ public B () {
super (\);
System.out.println (\默认类构造方法\); }
public B (String lin) { super (lin);
System.out.println (\类非构造方法\); }
}//测试类
public class test4_4 {
public static void main (String args[]) { new B();
System.out.println (); new B(\); } }
运行结果:
5.声明一个类,它具有一种方法,此方法被重载三次,派生一个新类,并增加一种新的重载方法,编写测试类验证四种方法对于派生类验证四种方法对于派生类都有效。 //A类
public class A {
public void showTime () { }
public void showTime (int l) { System.out.println (\空重载\
System.out.println (\整形参数重载\
}
public void showTime (char l) { System.out.println (\字符参数重载\
}
}
//B类
public class B extends A { public void showTime (String l) { System.out.println (\字符串参数重载\
}
} //测试类
public class test4_5 {
public static void main (String args[]) { B b = new B(); b.showTime(); b.showTime(5); b.showTime('f'); b.showTime(\林楚金\); } }