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的逻辑关系。

浙公网安备 33010602011771号