我们编写了两个类,一个是Puppil类(小学生),一个是Graduate(大学生),问题:两个类的属性和方法有很多是相同的,怎么办?
把共有的属性和方法抽离出来:
父类:
package com.hspedu.extends01;
//父类,是Pupil和Graduate的父类
public class Studnet {
// 共有属性
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);
}
}
大学生类:
package com.hspedu.extends01;
public class Graduate extends Studnet {
public void testing() {
System.out.println("大学生" + name + "正在考大学数学..");
}
}
小学生类:
package com.hspedu.extends01;
public class Pupil extends Studnet {
// 让Pupil继承Student类
public void testing() {
System.out.println("小学生 " + name + "正在考小学数学..");
}
}
运行的结果:
上述的例子中,有三个属性两个方法相同,因此可以抽离出来,减少代码的冗余,另外不同的在单独的类里面写,然后用extends继承父类里面的方法。
class 子类? extends 父类{
}
1.子类就会自动拥有父类定义的属性和方法
2.父类又叫超类,基类。
3.子类又叫派生类