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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡建伟 中级黑马   /  2013-8-26 12:09  /  2259 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 胡建伟 于 2013-8-26 21:23 编辑

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

    有点混乱了,希望各位高手帮忙分析分析,看如何结局,本人菜鸟,希望附带详细解释哈

评分

参与人数 1技术分 +1 收起 理由
黄兴旺 + 1 鼓励一下下。。

查看全部评分

9 个回复

倒序浏览

回帖奖励 +1

测试题?基础测试题?说实在的,这个真的是很基础的东西,建议楼主去学习毕老师的JAVA基础视频之后再来做。。
回复 使用道具 举报
代码不能给你写,给你说下思路。再三个类的构造方法中都添加输出语句,然后新建几个对象,再看看输出内容,你就知道结果了。至于怎么指定调用那个构造方法,根据方法报数类型和个数决定。
回复 使用道具 举报

回帖奖励 +1

看看,了解一下入学测试题。楼主加油。
回复 使用道具 举报

回帖奖励 +1

本帖最后由 べPNヤ 于 2013-8-26 13:35 编辑

class Persion
{
Persion(){
  System.out.println("Persion function");
}
}

class Student extends Persion
{
int age;
Student(){
  System.out.println("Student function");
}
Student(int age){
  this.age=age;
  System.out.println("Student'age is "+this.age);
}

}

class GoodStudent extends Student
{

GoodStudent(){
  super(20);
  System.out.println("GoodStudent function");
}
public static void main(String[] args){
  new GoodStudent();
}
}
/*
输出结果为
Persion function
Student'age is 20
GoodStudent function
*/

创建GoodStudent 对象的时候输出了Persion function  证明调用了它的构造函数,因为构造函数第一句有个隐藏语句super()
GoodStudent 的show()方法通过制定参数的形式可以调用父类(student)对应的构造方法
第三个问题不确定,貌似之类构造函数只能调用父类的构造函数,不能越级啊,求楼下的详细解释


评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
你可以给每一个类设置有参和无参的构造函数进行实验,首先给每个类设置无参的构造函数,每个构造函数只有一条显示语句,可以显示出不同类的名字,以区别不同的类来观察显示的顺序从而得到子类和父类之间的执行顺序。然后再在每一个类中定义一个有参的构造函数,功能自己想喽~然后根据之前得到的顺序,通过super关键字进行不同的引用即可达到测试这个例题的作用

评分

参与人数 2技术分 +1 黑马币 +2 收起 理由
田磊阳 + 1
胡建伟 + 2 多谢提供思路

查看全部评分

回复 使用道具 举报
冯超 高级黑马 2013-8-26 13:45:26
7#
怎么证明写函数。看输出 就可以证明 且先后顺序一幕了然。
在GoodStudent中是否能指定调用Student的哪个构造函数?
          public GoodStudent() {
                super("feng");
                System.out.println("3333");
               
        }

在GoodStudent中是否能指定调用Person的哪个构造函数?
   这个估计不能把··我不知道
回复 使用道具 举报
hx32 高级黑马 2013-8-26 20:18:59
8#
Person、Student、GoodStudent
GoodStudent按我的理解不能直接调用Person中的构造函数,因为GoodStudent都不知道有Person这个类的存在。但是Student是继承Person,那么在构造的时候就会参考Person的构造函数,相当于GoodStudent间接调用了Person中的构造函数。

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

回复 使用道具 举报
楼主,如果问题解决了,请把问题的未解决更改为已解决,谢谢合作,

更改方法:http://bbs.itheima.com/thread-71308-1-1.html
回复 使用道具 举报
べPNヤ 发表于 2013-8-26 13:30
class Persion
{
Persion(){

多谢大牛哈和楼下的大牛,解释很详细
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马