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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 古月哥欠 中级黑马   /  2014-12-19 23:19  /  1912 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

不是很懂子父类中构造方法的执行,以下列程序为例,求解释
class A
        {
                public int num = 5;

                public A()
                {
                        System.out.println("F");
                }
        }

        class B extends A
        {
                public int num = 10;

                public B()
                {
                       
                        System.out.println("S");
                }

                public void show()
                {
                        int num = 50;
                        System.out.println(num);       
                        System.out.println(this.num);       
                        System.out.println(super.num);       
                }
        }

        class Test
        {
                public static void main(String[] args)
                {
                        A a = new A();
                        a.show();
                }
        }

9 个回复

倒序浏览
你那个Test创建的父类对象?假如你就是创建的子类对象
1.子类继承父类,要具有父类的属性,必须检查父类初始化详情,所以子构造里都有一句隐式的super
2.例子中创建子类对象会先访问父类构造,会输出F。
3.然后访问子类构造输出S。
4.初始化完毕,调用show方法。
5.就近原则num输出方法体内的50.
6.this本类对象引用输出子类成员变量10
7.super父类引用输出父类num5
回复 使用道具 举报
a.show();处编译出错,找不到符号。
回复 使用道具 举报
由A a=new A()先继承父类的构造方法public B(),输出S,同时父类被初始化,然后执行子类构造方法public B()
回复 使用道具 举报
接着执行show()方法,依次输出50 10 5,this和super的用法相信楼主应该知道
回复 使用道具 举报
侯鹏成 发表于 2014-12-19 23:55
由A a=new A()先继承父类的构造方法public B(),输出S,同时父类被初始化,然后执行子类构造方法public B() ...

父类先输出F子类输出S,写的急了:L
回复 使用道具 举报
由于继承体现了一种关系:is a的关系。xxx is yyy的一种。
回复 使用道具 举报
代码错了,A类中都没有show方法,怎么调用啊?!
回复 使用道具 举报
不给吃鸭梨 发表于 2014-12-19 23:29
你那个Test创建的父类对象?假如你就是创建的子类对象
1.子类继承父类,要具有父类的属性,必须检查父类初 ...

class Test
        {
                public static void main(String[] args)
                {
                       B  b = new B();
                        b.show();
                }
        }
不好意思,写错了,应该是上面这样的,谢谢解惑!
回复 使用道具 举报
冷风 中级黑马 2014-12-20 21:53:30
10#
    A a = new A();  我没看错把
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马