java面向对象-子父类中构造函数的特点-子类实例化过程super

/*

3,子父类中的构造函数


在对子类对象进行初始化时,父类的构造函数也会运行

那是因为子类的构造函数默认第一行隐式的语句super();

super():会访问父类中空参数的构造函数。而且子类中所有的构造函数默认第一行都是super();


为什么子类一定要访问父类中的构造函数

因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类是如何对这些数据如何初始化的

所以子类在对象初始化时,要先访问一下父类中的构造函数

如果要访问父类中指定的构造函数,可以通过手动定义super语句的方式来指定


注意:super语句一定定义在子类构造函数的第一行


结论:

子类的所有的构造函数,默认都会访问父类中空参数的构造函数

因为子类每一个构造函数内的第一行都有一句隐式super();


当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数


当然:子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数,子类中至少会有一个构造函数会访问父类中的构造函数

*/


	class Fu {
		Fu() {
			System.out.println("fu run");
		}

		Fu(int x) {
			System.out.println("fu run");
		}
	}

	class Zi extends Fu {
		Zi() {
			System.out.println("zi run");
		}

		Zi(int x) {
			System.out.println("zi..." + x);
		}
	}

	class ExtendsDemo4 {
		public static void main(String[] args) {
			Zi z = new Zi();
			Zi z1 = new Zi(4);
		}
	}
	/*
	 * class Person { String name; Person(String name) { this.name = neme; } }
	 * class Student extends Person { Student(String name) { super(name); } void
	 * method() { super.show(); } }
	 */


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值