1.继承
为什么需要继承
编写了两个类,两个类的属性和方法有很多是相同的,怎么办?
用继承解决代码的复用性
package com.logic.extend_;
//模拟小学生考试的情况
public class Pupil {
//大学生的档案也需要用这些信息
public String name;
public int age;
private double score;
public void setScore(double score) {
this.score = score;
}
//大学生的考试也需要这些输出
public void testing() {
System.out.println("学生" + name + " 正在考试数学...");
}
public void showInfo() {
System.out.println("小学生 " + name + " 年龄 " + age + " 成绩 " + score);
}
}
继承基本介绍和示意图
继承可以解决代码复用,让我们的编程更加靠近人类的思维 当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子类不需要重新定义这些属性和方法 只需要通过extends来声明继承父类即可
继承的基本语法
class 子类 extends 父类 {
}
- 子类就会自动拥有父类定义的属性和方法
- 父类又叫超类 基类
- 子类又叫派生类
快速入门案例
package com.logic.extend_.improve_;
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);
}
}
package com.logic.extend_.improve_;
public class Pupil extends Student {
public void testing() {
System.out.println("小学生" + name + " 正在考试数学...");
}
}
package com.logic.extend_.improve_;
public class Graduate extends Student {
public void testing() {
System.out.println("大学生" + name + " 正在考试数学...");
}
}
package com.logic.extend_.improve_;
public class Extends01 {
public static void main(String[] args) {
com.logic.extend_.improve_.Pupil pupil = new Pupil();
pupil.name = "jack";
pupil.age = 18;
pupil.setScore(100);
pupil.testing();
pupil.showInfo();
Graduate graduate = new Graduate();
graduate.name = "jack";
graduate.age = 20;
graduate.setScore(99);
graduate.testing();
graduate.showInfo();
}
}