面向对象的特征二:继承
1、为什么要设计继承?
2、通过”class A extends B“实现类的继承。
子类:A 父类(或基类或SuperClass):B
3、子类继承父类以后,父类中声明的属性、方法,子类都可以获取到。 明确:父类中私有的属性或方法,子类同样可以获取到,只是由于封装性(private)的设计,只是子类不可以直接调用罢了。 若想子类可以调用父类的private 方法时,需要有getter、setter方法。 子类除了通过继承,获取父类的结构之外,还可以定义自己特有的成分。 extends:子类并不是父类的子集,而是对父类功能的”扩展“。
4、java中类的继承性只支持单继承:一个类只能继承一个父类,反之,一个父类可以被多个子类继承。(一个儿子只能有一个父亲,但是一个父亲可以有多个儿子)
5、子类父类都是相对概念。子类可以再被其他类继承,便又充当着父类的角色。
方法的重写: 修饰符 返回值类型 方法名 (参数列表){ }
1、前提:有子类继承父类
2、子类继承父类后,若父类的方法对子类不适用,那么子类可以对父类方法进行重写(override overwrite)、覆盖、覆写。
3、重写的规则:1)要求子类方法的 ”返回值类型 方法名 (参数列表)“与父类的方法一样。2)子类方法的修饰符不能小于父类的修饰符(当父类是public时,因为public最大,子类不能小于它,也必须是public) 3)若父类方法抛异常,那么子类方法抛的异常不能大于父类的。4)子父类的方法必须同为static或同为非static的。
重写的方法前面有一个绿色的小三角,意思为重写。
当父类的方法中有private的方法时候,子类无法重写父类的该方法,因为子类根本看不到父类的私有方法,因此此时可以随便重新定义,所以也可以修改返回值类型。 而真正的重写,返回值类型必须是一样的。只是可以修饰符不同。