java是单继承。
继承性的特点:扩充已有类的功能。
继承的主要目的是重用父类中的结构
继承的实现:
用extends关键字来实现
语句格式:
class 子类 extends 父类 { }
子类也称派生类,父类也称为超类。
此时在子类中没有定义任何操作,但是子类可以直接通过父类继承而来的方法来实现相应的功能。
内存关系:
子类实例化对象流程:
在进行子类实例化时一定要实例化好父类
现在即使没有进行父类对象实例化,也会由系统自动调用父类的构造方法(自动实例化父类对象)
此时就相当于子类方法中隐藏了一个“super()”方法
super()表示的就是子类构造调用父类构造的语句,该语句只允许放在子类构造方法的首行。在默认情况下的实例化处理,子类只会调用父类中的无参构造方法,所以写不写"super()"区别不大,但是如果父类中没有提供无参构造,这时就必须利用super()明确有参构造
super和this都可以调用构造方法,super是有由子类调用父类构造,而this 是调用本类构造,都放在构造方法首行,所有这两个不能同时出现
重写父类方法:
重写:
子类包含与父类重名方法的现象称为重写,也称为方法覆盖。可以说是子类重写了父类,也可以说成子类覆盖了父类。
重写原因:
假如bird类有个fly方法,但是鸵鸟不会飞,此时继承父类的方法明显就不太符合现实,所以需要在子类中重写父类的方法。
重写规则:
遵循”两同两小一大“规则
• 两同:方法名相同,形参列表相同
• 两小:子类方法的返回值类型应比父类方法的返回值类型更小或相等。
• 一大:子类方法的访问权限应比父类方法的访问权限更大或相等。



