从英文字面意思理解,extends关键字 的意思是“扩展”。子类是父类的扩展。现实世界中的继承无处不在。比如
上图中,哺乳动物继承了动物。意味着,动物的特性,哺乳动物都有;在我们编程中,如果新定义一个Student 类,发现已经有 Person 类包含了我们需要的属性和方法,那么 Student 类只需要继承 Person 类即可拥有 Person 类的属性和方法。
final使用的三种情况:数据(变量),方法和类 修饰变量: 对于基本数据类型,final使数值恒定不变,而对于对象引用,final使引用恒定不变(也就是说一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象),但是对象自身却是可以修改的,Java并未提供使任何对象恒定不变的途径.
final int MAX_SPEED = 120; 修饰方法:该方法不可被子类重写。但是可以被重载.并且,类中所有的private方法都隐式指定为final的.
final void study(){} 修饰类: 修饰的类不能被继承。比如:Math、String 等。
final class A {}
继承除了代码复用、也能方便我们对事物建模。所以,对于“is -a”关系建议使用继承, “has-a”关系建议使用组合.比如:上面的例子,Student is a Person 这个逻辑没问题,但是:Student has a Person 就有问题了。这时候,显然继承关系比较合适。再比如:笔记本和芯片的关系显然是“has-a”关系,使用组合更好。
super关键字
super“可以看做”是直接父类对象的引用。可以通过 super 来访问父类中被子类覆盖的方法或属性。