辅导课程十二
继承中的构造方法 子类的构造过程中必须调用其基类的构造方法。 子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。 使用this(agument list)调用本类另外的构造方法 如果用super,必须写在方法的第一句 如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用基类无参数的构造方法。 如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参的构造方法,则编译出错。 TestSuperSub/TestSuperSub.java
分析程序的输出结果,体会构造函数和一般成员函数在继承中的区别。 课 堂 练 习 class A { protected void print(String s){ System.out.println(s); } A(){print("A()");} public void f() {print("A:f()");} class B extends A { B(){print("B()");} public void f() {print("B:f()");} public static void main(String[] arg) { B b = new B(); b.f(); TestSuperSub/Test05.java 分析程序的输出结果,体会构造函数和一般成员函数在继承中的区别。
阅读上面的程序,分析对象的构造过程和输出结果。 课 堂 练 习 课堂练习 TestSuperSub/Test10.java 阅读上面的程序,分析对象的构造过程和输出结果。
stack heap location name location name s l n school data seg name “C” “s1” “beijing” s1:xx
stack heap name location s school l n school data seg name “C” “s1” “beijing” s1:xx
stack heap name location school school data seg name “C” “s1” “beijing” s1:xx
stack heap name location school data seg “C” “s1” “beijing” s1:xx
stack heap name location school data seg “C” “s1” “beijing” s1:xx
stack heap name: location: school: super data seg “C” “S1” “beijing” s1:xx
根据上面的程序,构造“Teacher”类,继承“Person”类。要求: 增加“职称(String)”属性。 课 堂 练 习 课堂练习 TestSuperSub/Test10.java 根据上面的程序,构造“Teacher”类,继承“Person”类。要求: 增加“职称(String)”属性。 具有和“Student”类相似的重载构造方法。 重写“Person”类的info()方法,增加“职称”信息。