面向对象三大特征之【继承性】
继承让我们更加容易实现类的扩展。比如:我们定义了人类,再定义Boy类就只需要扩展人类即可。实现了代码的重用,不用再重新发明轮子(don’t reinvent wheels )。
从英文字面意思理解,extends的意思是“扩展”。现实世界中的继承无处不在。比如:
上图中,哺乳动物继承了动物。意味着,动物的特性,哺乳动物都有;我们在编程中,如果新定义一个Student类,发现已经有Person类包含了我们需要的属性和方法,那么Student类只需要继承Person类即可拥有Person类的属性和方法。
未使用继承前的代码 <会发现有重复的代码>:
public class TestExtends { } class Person { String name; int height; public void rest() { System.out.println("休息一会!"); } } class Student { String name; int height; String major; public void study() { System.out.println("学习两小时!"); } public void rest() { System.out.println("休息一会!"); } }
使用继承方法优化后的代码:
public class TestExtends { } class Person { String name; int height; public void rest() { System.out.println("休息一会!"); } } class Student extends Person { String major; public void study() { System.out.println("学习两小时!"); } }
在main方法中使用继承父类后的子类 创建子类对象:
public class TestExtends { public static void main(String[] args) { Student stu = new Student(); stu.name = "高淇"; stu.height = 172; stu.rest(); System.out.println(stu.name); } } class Person { String name; int height; public void rest() { System.out.println("休息一会!"); } } class Student extends Person { String major; public void study() { System.out.println("学习两小时!"); } }