继承
(1)继承是面向对象的三大特征之一,继承可以解决编程中代码冗余的问题,是实现代码重用的重要手段之一。
(2)继承是软件可重用的一种表现,新类可以在不增加自身代码的情况下,通过从现有的类中继承其属性和方法,来充实自身内容,这种现象或行为就称为继承。此时,新类称为子类,现有的类称为父类。
(3)Java中只支持单根继承,即每个类只能有一个直接父类。
注意:
-->在Java中,继承通过extends关键字实现,其中SubClass称为子类,SuperClass称为父类或基类。
-->访问修饰符如果是public,那么该类在整个项目中可见。
-->若不写访问修饰符,则该类只在当前包中可见。
-->在Java中,子类可以从父类中继承以下内容:
》 可以继承public和protected修饰的属性和方法,不论子类和父类是否在同一个包里。
》 可以继承默认访问修饰符修饰的属性和方法,但是子类和父类必须在同一个包里。
》 无法继承父类的构造方法
使用super关键字调用父类成员
(1)super关键字代表父类引用,和this关键字的作用类似,都是将屏蔽了的成员变量、成员方法变得可见、可用,也就是说,用来引用被屏蔽的成员变量或成员方法。
(2)super是用在子类中,目的只有一个,就是访问直接父类中被屏蔽的内容,进一步提高代码的重用性和灵活性。
(3)super关键字可以访问父类的构造方法、属性、一般方法。
(4)通过super访问父类成员的语法格式如下:
访问父类构造方法:super(参数)
访问父类属性/方法:super.<父类属性/方法>
方法重写
1)如果从父类继承的方法不能满足子类的需求,可以在子类中对父类的同名方法进行重写(覆盖),以符合需求
2)方法重写(方法覆盖)必须满足如下要求:
-->重写方法和被重写方法必须具有相同的方法名
-->重写方法和被重写方法必须具有相同的参数列表
-->重写方法的返回值类型必须和被重写方法的返回值类型相同或者是其子类
-->重写方法不能缩小被重写方法的访问权限。
-->super只能出现在子类(子类的方法和构造方法)中,而不是其他位置。
-->super用于访问父类的成员,如父类的属性、方法、构造方法。
-->具有访问权限的限制,如无法通过super访问父类的private成员。