11.子类实例化过程
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11.子类实例化过程相关的知识,希望对你有一定的参考价值。
- 生成子类的过程
- 子类继承了父类的成员变量,但却无法继承父类的构造函数
- 当生成子类对象的时候,一定会调用父类的构造函数
- 如果子类当中没有调用构造函数,编译器会自动添加super(),用于调用父类当中的无参数构造函数
- 使用super调用父类构造函数的方法
- 在子类要调用父类函数的话,super()一定要是构造函数的第一条语句
classPerson{
String name;
int age;
int grade;
Person(){
System.out.println("Person的无参数构造函数");
}
Person(String name ,int age){
this.name = name;
this.age = age;
System.out.println("Person的有参数构造函数");
}
void eat(){
System.out.println("吃饭");
}
}
classStudent extends Person{
//在子类的构造函数当中,必须调用父类的构造函数
Student(){
super();
System.out.println("student的无参数构造函数");
}
Student(String name,int age,int grade){
//this.name = name;
//this.age = age;
super(name,age);
this.grade = grade;
}
}
classTest{
publicstaticvoid main(String args []){
Student student =newStudent("zhagnsan",18,3);
System.out.println(student.name);
System.out.println(student.age);
System.out.println(student.grade);
}
}
结果:
D:\work\src>javac *.java
D:\work\src>java Test
Person的有参数构造函数
zhagnsan
18
3
以上是关于11.子类实例化过程的主要内容,如果未能解决你的问题,请参考以下文章
类加载过程(clinit()),对象实例化过程(init())