(JAVA基础)JAVA子类构造函数的方法

实际问题中,JAVA子类的构造函数有时会出现无法编译通过的情况,如:

class Fu{
	public int age;
	Fu(int age) {
		this.age = age;
	}
}

class Zi extends Fu{
	public int age;
	Zi(int age) {
		this.age = age;
	}
}

则无法编译通过!

因为构造函数不能继承,只是调用而已。
如果父类没有无参构造函数
创建子类时,不能编译,除非在构造函数代码体中第一行,必须是第一行显式调用父类有参构造函数
如下:Zi(int age) {
如果父类没有无参构造函数
创建子类时,不能编译,除非在构造函数代码体中第一行,必须是第一行显式调用父类有参构造函数
如下:Zi(int age) {
                super();
		this.age = age;
	}

如果不显示调用父类有参构造函数,系统会默认调用父类无参构造函数super();
但是父类中没有无参构造函数,那它不是不能调用了。所以编译就无法通过了。如果不显示调用父类有参构造函数,系统会默认调用父类无参构造函数super();
但是父类中没有无参构造函数,那它不是不能调用了。所以编译就无法通过了。
所以必须在父类中增加无参构造函数。

猜你喜欢

转载自blog.csdn.net/u012313382/article/details/80927884