风也温柔

计算机科学知识库

,GoodStudent三个类的继承、构造函数的执行(图) java Person,Student

  java Person,Student,GoodStudent 三个类的继承、构造函数的执行

  更新时间:2017年02月21日 21:50:04 投稿:mdxy-dxy

  这篇文章主要介绍了java Person,Student,GoodStudent 三个类的继承、构造函数的执行,需要的朋友可以参考下

  有这样三个类,GoodStudent三个类的继承、构造函数的执行(图)
java Person,Student,Person,Student,GoodStudent。其中Student继承了Person,GoodStudent继承了Student,三个类中只有默认的构造函数,用什么样的方法证明在创建Student类的对象的时候是否调用了Person的构造函数,在创建GoodStudent类的对象的时候是否调用了Student构造函数?如果在创建Student对象的时候没有调用Person的构造函数(我也不知道什么情况下不会去调用java使用默认构造函数,如果都是默认无参构造函数的话)java使用默认构造函数,那么采用什么样的手段可以调用父类的构造函数?

  一���需要分析

  1、Person,Student,GoodStudent三个类的继承关系

  2、实现三个class的构造函数

  3、打印信息查看各个类的构造函数是否被调用

  二、技术点

  1、弄清楚Java 类的无参构造函数是默认调用的

  2、如果父类的构造函数是有参的,那么要在子类的构造函数的第一行加入super(args); 来确认对哪个父类构造函数的调用

  代码:

  <pre class="brush:java;">package com.itheima;
/**

  • 9、
  • 有这样三个类,Person,Student.GoodStudent。其中Student继承了Person,GoodStudent继承了Student,
  • 三个类中只有默认的构造函数,用什么样的方法证明在创建Student类的对象的时候是否调用了Person的构造函数,
  • 在创建GoodStudent类的对象的时候是否调用了Student构造函数?如果在创建Student对象的时候没有调用Person的构造函数
  • ,那么采用什么样的手段可以调用父类的构造函数?
  • @author [[email protected]][2]
    */

public class Test9 {

public static void main(String[] args) {
    Student s1 = new Student();
    System.out.println("-------------------------------");
    Student s2 = new Student();
    System.out.println("-------------------------------");
    GoodStudent g1 = new GoodStudent();
    System.out.println("-------------------------------");
}

}
class Person {

Person() {
    System.out.println("I'm Person!");
}
Person(String arg) {
    System.out.println(arg);
}
Person(String arg1, String arg2) {
    System.out.println(arg1 + arg2);
}

}
class Student extends Person {

Student() {
    super("have arg!"); //
    System.out.println("I'm Student!");
}
Student(String arg) {
    super("have arg!", "in Person");
    System.out.println(arg);
}

}
class GoodStudent extends Student {

GoodStudent() {
    super("from GoodStudent!");
    System.out.println("I'm GoodStudent!");
}
re>

  打印构造函数的调用过程:

  <pre class="brush:java;">have arg!

I'm Student!

have arg!

I'm Student!

have arg!in Person
from GoodStudent!
I'm GoodStudent!
-------------------------------</pre>

  文章来源:https://motdave.com/page-https-www.jb51.net/article/106345.htm