练习1:为C编写一个构造函数,并在C的构造函数中执行所有初始化。
class A{
A(char c , int i){
System.out.println("A(char , int)");
}
}
class B extends A{
B(String s , float f){
super(' ',0);
System.out.println("B(String , float)");
}
}
public class C extends A{
private char c;
private int i;
C(char a , int j){
super(a,j);
c = a;
i = j;
}
B b = new B("hi" , 1f);//先构造A,再构造B
public static void main(String[] args){
C c = new C('b' , 2);//先构造一个A
}
}
输出结果
A(char , int)//先生成A
//先生成A再生成B
A(char , int)
B(String , float)
练习二:创建一个名为Root的类,它包含一个名为Component1、Component2和Component3的类(您也创建了这个类)的实例。从Root派生一个类Stem,它也包含每个“Com”的一个实例。所有类都应该有默认的构造函数来打印关于该类的消息
class Component1{
Component1(byte b){
System.out.println("Com1(byte)");
}
}
class Component2{
Component2(short s) {
System.out.println("Com2(short)");
}
}
class Component3{
Component3(int i){
System.out.println("Com3(int)");
}
}
class Root{
Component1 c1root;
Component2 c2root;
Component3 c3root;
Root(float f){
c1root = new Component1((byte)0);
c2root = new Component2((short)0);
c3root = new Component3(0);
System.out.println("Root(float)");
}
}
public class Stem extends Root{
Component1 c1stem;
Component2 c2stem;
Component3 c3stem;
Stem(double d){
super(2.78f);
c1stem = new Component1((byte)1);
c2stem = new Component2((<