class Person {
public String name;
public int age;
Person(String name) {
this.name = name;
age = 30;
}
Person(String name, int age) {
this.name = name;
this.age = age;
}
public void info() //可以写成有返回值类型,我写成了无返回值类型了{
System.out.println("Hello! My name is " +
name + ". I'm " + age + "years old.");
}
}
class Teacher extends Person {
public String position;
Teacher(String name, int age){
this(name, age, "sb"//要指定);
}
Teacher(String name, int age, String position) {
super(name, age);
this.position = position;
}
public void info() {
super.info();//super要写在外面
System.out.println(" My position is " + position);
}
}
public class TestTeacher {
public static void main(String args[]) {
Teacher cc = new Teacher("chen", 20);
cc.info();
Teacher bb = new Teacher("hh", 45, "bs");
bb.info();
public String name;
public int age;
Person(String name) {
this.name = name;
age = 30;
}
Person(String name, int age) {
this.name = name;
this.age = age;
}
public void info() //可以写成有返回值类型,我写成了无返回值类型了{
System.out.println("Hello! My name is " +
name + ". I'm " + age + "years old.");
}
}
class Teacher extends Person {
public String position;
Teacher(String name, int age){
this(name, age, "sb"//要指定);
}
Teacher(String name, int age, String position) {
super(name, age);
this.position = position;
}
public void info() {
super.info();//super要写在外面
System.out.println(" My position is " + position);
}
}
public class TestTeacher {
public static void main(String args[]) {
Teacher cc = new Teacher("chen", 20);
cc.info();
Teacher bb = new Teacher("hh", 45, "bs");
bb.info();
}
继承中的构造方法
子类在自己的构造方法中使用super(argument_list)调用基类的构造方法
使用this(argument_list)调用本类的另外的构造方法
如果 调用super必须写在子类的构造方法的第一行
如果子类的构造方法中没有显示地调用基类的构造方法,则系统默认调用基类无参数的构造方法
如果子类构造方法中既没有显示调用基类构造方法而基类又没有无参的构造方法,则编译出错