首页 > 代码库 > java4android (继承中的子类实例化过程)

java4android (继承中的子类实例化过程)

生成子类的过程

见代码:

class Person {
    String name;
    int age;
    Person(){
        System.out.print("Person的无参数构造函数");
    }
    Person(String name,int age){
        this.name = name;
        this.age = age;
        System.out.print("Person的有2个参数的构造函数");
    }
    void eat(){
        System.out.print("吃饭");
    }
}

 

class Student extends Person{
    int grade;
    Student(){
        //在子类的构造函数当中,必须调用父类的构造函数
        //如果没有写父类的构造函数,那么编译器会自动加上 super();
        //super(根据参数调用父类中相应的构造函数);
        System.out.print("Student的无参数构造函数");
    }
    
    Student(String name,int age,int grade){
        //this.name = name;
        //this.age = age;
        super(name,age);//减少重复代码
        this.grade = grade;
    }
}
class Text{
    public static void main(String args[]){
        Student s = new Student("zhansan",18,90);
        System.out.print(s.name);
        System.out.print(s.age);
        System.out.print(s.grade);
    }
}

 

使用super调用父类构造函数的方法

由于子类继承了父类的成员变量和成员函数,但无法继承父类的构造函数,所以在为成员变量赋值的时候会出现代码重复。为解决这个问题,用super调用父类的构造函数。。

注意:super在构造函数中要在第一行。