A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 纯情的小VV 中级黑马   /  2015-1-9 16:25  /  1289 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有这样三个类,Person、Student、GoodStudent。
其中GoodStudent继承于Student,Student继承于Person。
如何证明创建GoodStudent时是否调用了Person的构造函数?
在GoodStudent中是否能指定调用Student的哪个构造函数?
在GoodStudent中是否能指定调用Person的哪个构造函数?

5 个回复

倒序浏览
照要求建三个类,只要在各类的构造函数中输出打印不同数据,就可以知道,构造函数有没有运行了。
回复 使用道具 举报
class  Test9
{
        public static void main(String[] args)
        {
                GoodStudent goodstu3 = new GoodStudent("goodstudent","指定调用");
        }
}


class Person
{
        Person()
        {
                //若子类调用到该构造函数则打印提示  
                System.out.println("调用Person的构造函数--1");
        }
        Person(String str1)
        {
                System.out.println(str1+"调用Person的构造函数--2");
        }
        Person(String str1,String str2)
        {
                System.out.println(str1+str2+"调用Person的构造函数--3");
        }
}


class Student extends Person
{
        Student(String str1)
        {
                System.out.println(str1+"Student的构造函数--1");
        }
        Student(String str1,String str2)
        {
                //若子类调用到该构造函数则打印提示
                System.out.println(str1+str2+"Student的构造函数--2");
        }
       
}
class GoodStudent extends Student
{
        GoodStudent(String str1,String str2)
        {
                //调用父类构造函数
                super(str1,str2);
        }
}
回复 使用道具 举报
在Person顶层父类构造函数中写一个输出语句“我来自Person父类”,student中的构造函数 中写上“我来自student父类”。在goodstudent创建对象初始化时就会显示这两条来自父类的语句了。表名调用了父类的构造方法。
回复 使用道具 举报
在Peson中的构造函数中写上“我来自person”,在Student中的构造函数中中写上“我来自student”,在goodstudent创建对象初始化时,就会显示这两条语句表名调用了,这两个构造方法。
回复 使用道具 举报
第一:在三个类的构造函数中分别增加一条打印输出语句,就可以判断哪个构造函数被调用了。
第二:在GoodStudent的构造函数的第一行通过super来指定调用Student的哪个构造函数
第三:GoodStudent不能直接调用Person的构造函数,但是Student可以调用Person的构造函数,构造函数的调用只能向上调用高一级的,不能跨越多级。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马