Java4Android(Mars)

Java4Android(Mars)

5 (61人评价)
  • 课时:(48)

  • 学员:(480)

  • 浏览:(29520)

  • 加入课程

Java4Android 19 子类实例化过程的笔记

相关课时: 笔记详情:

重点:extends是不可以继承父类的构造函数的,只能继承父类的成员变量和成员函数。

用super()就可以调用父类的构造函数了。

解决了两个类当中的构造函数里重复的代码。

eg:
class Person{
String name;
int age;

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("吃饭");
}
}

class Student extends Person{
int grade;
//在子类的构造函数当中,不需调用父类的构造函数(自动生成!)?

Student(){
super();//像this,里面的参数决定用父类的构造函数
System.out.println("students的无参构造函数");
}

Student(String name,int age,int grade){
//this.name = name;
//this.age = age;
super(name,age);//解决了上方的父类的重复代码
this.grade = grade;
}
}

主函数:
class Test{
public static void main(String arge[]){
Student student = new Student("zhangsan",18,3);
System.out.println(student.name);
System.out.println(student.age);
System.out.println(student.grade);
//调用student类是,会先调用student的父类。
}
}

结果可想而知,输出的是student的有参的构造函数,并且先编译person的有参构造函数,在编译student的有参构造函数。

0 0

你感兴趣的课程

8万+浏览/ 916学员/ 4.5评分
免费
6万+浏览/ 177学员/ 5评分
免费
6万+浏览/ 973学员/ 4.8评分
免费