JavaForAndroid06

2018-04-24  本文已影响0人  tah

生成子类的过程
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("吃饭");
}
}
//由于在继承关系中只能继承子类的成员变量和成员函数,却无法继承构造函数,所以在子类的构造函数中为成员变量赋值时,会出现重复代码。可以使用super调用父类的构造函数。
class Student extends Person {
//在子类的构造函数中,必须调用父类的构造函数
//如果子类中没有明确调用父类的构造函数,系统会默认添加一行super();//调用父类的构造函数,根据()中的参数决定调用哪个构造函数
Student() {
super();//如果自己写super();那么必须是构造函数的第一行
System.out.println("Student的无参数构造函数");
}
Student (int grade) {
this();
}
Student (String name, int age, int grade) {
//this.name = name;
//this.age = age;
//调用父类的构造函数
super(name, age);
this.grade = grade;
System.out.println("Student的有参数构造函数");
}
}
class Test {
public static void main (String args []) {
Student student1 = new Student();
/*输出:
Person的无参数构造函数
Student的无参数构造函数
/
Student student2 = new Student("zhangsan", 18, 3);
System.out.println(student2.name);
System.out.println(student2.age);
System.out.println(student2.grade);
/
输出:
Person的有参数构造函数
Student的有参数构造函数
zhangsan
18
3
*/
}
}

上一篇 下一篇

猜你喜欢

热点阅读