class stu extends per//子类
{
stu()
{
//当创建子类对象时, 子类对象会隐式的调用父类的无参构造器
//也就是说, 这里其实有一个 super()调用语句, 该语句就是在调用父类的无参构造器,因为是隐式调用所以我们就看不见,当然你也可以写出来,不过写出来后就不叫隐式调用了
//super(); //这里其实有个super()调用语句,调用父类无参构造器
//关于你说的当我们现实调用父类有参构造方法后,默认的隐式构造方法不会被调用这句话是正确的,没有一点问题
// 因为你这段代码,你根本就没有显示调用父类的有参构造方法啊,这里我给加上吧
super("haha");//这才是显示调用父类的有参构造方法啊, 当你new stu()时,程序就会执行构造函数中的代码,先执行super("haha"),也就是调用父类的有参构造器,
//即 per(String name) {}这个构造器, 执行完这个构造器里面的代码,然后就执行本类的输出语句.
//这里加上super("haha")后, 程序就不会执行per(){}这个构造方法了, 因为你显示的调用了父类的有参构造器per(String name)构造器
//构造器也叫构造函数, 也叫构造方法, 另外 类名命名应该用驼峰式命名法 没个单词首字母大写, 希望能养成好习惯!!毕竟要走程序员这条路, 那么你就得遵循这个规矩
System.out.println("————————>您好!");
}
}
class kollpg
{
public static void main(String[] args)
{
//new per("kio");
new stu();//创建一个新的对象;它会去调用构造方法,顺序是先调用父类对象的构造方法,然后是子类的!
}
}
|