隐藏的super()

A.java

1 None.gif class  A
2 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
3InBlock.gif    int i;
4InBlock.gif    A()
5ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
6InBlock.gif        i=10;
7InBlock.gif        System.out.println("调用父类构造方法");
8ExpandedSubBlockEnd.gif    }

9ExpandedBlockEnd.gif}

B.java

 1 None.gif public   class  B  extends  A
 2 ExpandedBlockStart.gifContractedBlock.gif dot.gif {
 3InBlock.gif    int j;
 4InBlock.gif    B()
 5ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
 6InBlock.gif        j=20;
 7InBlock.gif        System.out.println("调用子类构造方法");
 8ExpandedSubBlockEnd.gif    }

 9InBlock.gif    public static void main(String [] args)
10ExpandedSubBlockStart.gifContractedSubBlock.gif    dot.gif{
11InBlock.gif        B bObj = new B();
12InBlock.gif        System.out.println(bObj.i+" "+bObj.j);
13ExpandedSubBlockEnd.gif    }

14ExpandedBlockEnd.gif}

在B.java的main方法中: 
B bObj=new B();
new后面的B()与该类中的构造函数名B()相同,也就是说调用了B()构造函数。
我们看B()构造函数,{}中第一行其实隐藏了super();它的作用是通知父类,告诉A,它有对象产生了,并调用父类A的构造函数。
所以,结果为:
调用父类构造方法
调用子类构造方法
10 20
源自:
http://zhidao.baidu.com/question/21440229.html

转载于:https://www.cnblogs.com/georgewing/archive/2007/03/04/663647.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值