- //此代码中为什么父类中的Fu (int x)不执行????
- class Fu
- {
- Fu()
- {
- System.out.println("fu run");
- }
- Fu(int x)
- {
- System.out.println("fu...****..."+x);
- }
- }
- class Zi extends Fu
- {
- Zi()
- {
- //super();
- System.out.println("zi run");
- }
- Zi(int x)
- {
- /*
- 第二部:
- 所以,为了满足你的题意,你需要手动写super(参数),去主动运行父类中有参数的构造函数
- 把下面这句话改啦!
- */
- super(x);//super();
- System.out.println("zi..."+x);
- }
- }
- class ExtendsDemo4
- {
- public static void main(String[] args)
- {
- Zi z = new Zi();
- Zi z1= new Zi(4);
- /*
- 第一部:
- Zi z1=new Zi(4);
- 对象一建立就会调用预知相对应的构造函数,即Zi(int x)
- 并将4传给x,而子类构造函数会默认去访问父类!!空参数!!的构造函数(即使该子类构造函数中有参数也不影响).
- 所以,你的程序,会直接运行父类中的空参数构造函数,而非有参数的那个
- */
- }
- }
复制代码 |