黑马程序员技术交流社区

标题: 给定Child.java的代码如下,编译运行结果是? [打印本页]

作者: jkdong    时间: 2015-7-4 17:28
标题: 给定Child.java的代码如下,编译运行结果是?
class Parent
{
Parent()
{
       System.out.println("parent");
   }
}
public class Child extends Parent
{
Child(String s)
               {
System.out.println(s);
      }
public staticvoid main(String[] args)
{
          Child child = new Child("child");
      }
}


作者: jk2015    时间: 2015-7-4 17:28
运行结果是parent ,child。child继承parent,child的构造函数第一行会默认有一个super()语句引用父类的构造函数,所以以上实际就是父类子类的构造函数的先后运行
作者: 357955778    时间: 2015-7-4 17:38
楼上正解!
作者: nanfp    时间: 2015-7-4 17:50
结果是:parent
              child
先运行父类的构造函数,再运行子类的构造函数。而析构函数则相反,先先运行子类的构造函数,再运行负类的构造函数
作者: dragonsoull    时间: 2015-7-4 19:23
parent
child.
子类继承父类,在创建子类对象的时候会默认调用父类的构造函数。
作者: ww黑马    时间: 2015-7-4 22:25
parent child
作者: wuwenwen3779    时间: 2015-7-4 22:43
parent,child呀,基础测试题里出现过的
作者: 李金伦    时间: 2015-7-4 23:05

结果是:parent
              child
作者: 双栖动物    时间: 2015-7-4 23:34
二楼正解 有个隐含的super()
作者: 825176857    时间: 2015-7-5 00:19
子类的实例化过程:
子类实例化时会先调用父类的构造方法。
父类中无默认构造方法时,子类中必须显示的调用父类的构造方法。
super表示父类的引用。必须放在第一个
so:

parent
child

虽然知道楼主骗回复的但还是回答你。
作者: jkdong    时间: 2015-7-5 00:27
357955778 发表于 2015-7-4 17:38
楼上正解!

谢谢啊!!!
作者: 0618张军    时间: 2015-7-5 16:16
继承关系,,,默认Child类中有一个super(),,先执行,,这时先执行父类的构造代码块,,,输出parent,,,,再执行子类,,输出child
作者: jkdong    时间: 2015-7-5 23:17
825176857 发表于 2015-7-5 00:19
子类的实例化过程:
子类实例化时会先调用父类的构造方法。
父类中无默认构造方法时,子类中必须显示的调用 ...

小哥,你。。。。。
作者: jkdong    时间: 2015-7-5 23:19
825176857 发表于 2015-7-5 00:19
子类的实例化过程:
子类实例化时会先调用父类的构造方法。
父类中无默认构造方法时,子类中必须显示的调用 ...

智商不错,情商太低
作者: Yunny    时间: 2015-7-6 23:39
parent
child
作者: 徐鹏辰    时间: 2015-7-10 10:08
本帖最后由 徐鹏辰 于 2015-7-10 10:38 编辑

/**父类*/
class Parent
{
     Parent()/*构造函数,类名与函数名相同*/
    {
          System.out.println("parent");/*输出语句:输出 parent*/
    }
}/**extends:继承*/
public class Child extends Parent
{
    //super();隐藏的语句,super()调用父类的空参数构造函数
    Child(String s)
    {
        System.out.println(s);/*输出传入的字符串s*/
    }}
/**主函数,即入口*/
public staticvoid main(String[] args)
{
          Child child = new Child("child");/*创建子类对象。*/
}


/*对象调用 读到super(),调用父类空参数的构造函数输出parent;再读子类含参数的函数,并执行输出传入的参数child
输出结果:parent
                  child
*/







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2