隐藏的super()

A.java

1class A
2{
3    int i;
4    A()
5    {
6        i=10;
7        System.out.println("调用父类构造方法");
8    }

9}

B.java

 1public class B extends A
 2{
 3    int j;
 4    B()
 5    {
 6        j=20;
 7        System.out.println("调用子类构造方法");
 8    }

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

14}

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

posted on 2007-03-04 20:23  豆豆の爸爸  阅读(321)  评论(0编辑  收藏  举报