java继承

▶ 继承

使用继承代码的复用性提高,扩展性和维护性提高。

public class Student {
    // 共有属性
    public String name;
    public int age;
    private double score;

    // 共有方法
    public void setScore(double score) {
        this.score = score;
    }

    public void showInfo(){
        System.out.println("学生名 " + name + " 年龄 " + age + " 成绩 " + score);
    }
}
public class Pupil extends Student{

    // 让 Pupil 继承 Student
    public void testing(){
        System.out.println("小学生" + name + "在考数学..");
    }
}
public class Graduate extends Student{

    public void testing(){
        System.out.println("大学生 " + name + "在考外语" );
    }
}
public class Main {
    public static void main(String[] args) {
        Pupil pupil = new Pupil();
        pupil.name = "zen";
        pupil.age = 12;
        pupil.testing();
        pupil.setScore(60);
        pupil.showInfo();

        System.out.println("=========");
        Graduate graduate = new Graduate();
        graduate.name = "len";
        graduate.age = 22;
        graduate.testing();
        graduate.setScore(100);
        graduate.showInfo();
    }
}

▷ 继承的细节

子类继承了所有的属性和方法,但是私有属性和访问不能在子类直接访问,要通过公共的方法去访问。

子类必须调用父类的构造器,完成父类的初始化。

当创建子类对象时,不管使用子类的哪个构造器,默认情况下总会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的哪个构造器完成对父类的初始化工作,否则,编译不会通过。

如果希望指定去调用父类的某个构造器,则显式的调用一下: super(参数列表)

super在使用时,必须放在构造器第一行。

super()和this()都只能放在构造器第一行,因此这两个方法不能共存在一个构造器。

子类最多只能继承一个父类(指直接继承),即java中是单继承机制。思考:如何让A类继承B类和C类。

不能滥用继承,子类和父类之间必须满足is-a的逻辑关系。

posted @ 2024-10-26 21:40  takenika  阅读(17)  评论(0)    收藏  举报