demo1
- 实例化子类,子类的父类也会实例化,而且是比子类先实例化
class Person {
public Person(){
System.out.println("Person实例化类");
}
}
class Student extends Person {
public Student(){
super();// super()就是子类构造调用父类构造的语句,只能放在子类构造方法的首行;--写不写都一样;
System.out.println("Student实例化了");
}
}
public class HelloWorld {
public static void main(String args[]){
new Student();// 实例化子类,子类的父类也会实例化,而且是比子类先实例化
}
}
Person实例化类
Student实例化了
demo2 super 如果父类没有无参构造,必须用super来调用有参构造
- 无论你如何折腾,在实例化子类的时候,一定会先实例化父类对象
- super,this都可以调用构造方法;super是由子类调用父类的构造方法;this是调用本类;2个都是放在构造方法的首行;而且2个不允许同时出现;
class Person {
private String name;
private int age;
public Person(String name,int age){
this.name = name;
this.age = age;
System.out.println("Person实例化类");
}
}
class Student extends Person {
private String school;
public Student(String name,int age,String school){
super(name,age);// 父类无无参构造,必须明确调父类有参构造
this.school = school;
System.out.println("Student实例化咯");
}
}
public class HelloWorld {
public static void main(String args[]){
new Student("李牛逼",29,"山东大学");
}
}
// super,this都可以调用构造方法;super是由子类调用父类的构造方法;this是调用本类;
// 2个都是放在构造方法的首行;而且2个不允许同时出现;