java类的继承
继承是面向对象的三大特征之一.
也是实现软件复用的重要手段.
Java继承具有单继承的特点, 每个子类只有一个直接父类.
子类能够继承父类的方法和属性
私有方法不能继承
java只支持单继承
exyends关键字生成get set方法的快捷方式 alte+shift+s
方法 的重写Java 重写(Override)与重载(Overload) | 菜鸟教程
Birlds类中方法fly Ostrich中fly方法这种子类包含与父类同名方法的现象称为方法重写(Override). 也被称为方法覆盖.
可以说子类重写了父类的方法, 也可以说子类覆盖了父类的方法, 都行.
方法的重写要遵循两同两小一大规则.
两同: 方法名相同 / 形参列表相同
两小: 子类方法返回值类型应比父类方法返回值类型小或相等. / 子类方法声明抛出的异常类应比父类方法声明抛出的异常类更小或相等.
一大: 子类方法的访问权限应比父类方法的访问权限大或相等.
super 子类中调用父类方法
super 是 Java提供的一个关键字, super 用于限定该对象调用它从父类继承得到的实例变量或方法. 正如 this 不能出现在 static 修饰的方法中一样, super 也不能出现在 static 修饰的方法中. static 修饰的方法是属于类的. 该方法的调用者可能是一个类, 而不是对象, 因而 super 限定也就失去了意义.如果在构造器中使用 super 则 super 用于限定该构造器初始化的是该对象从父类继承得到的实例变量, 而不是该类自己定义的实例变量.如果子类定义了和父类同名的实例变量. 则会发生子类实例变量隐藏父类实例变量的情形. 在正常情况下, 子类里定义的方法直接访问该实例变量默认会访问到子类中定义的实例变量. 无法访问到父类中被隐藏的实例变量. 在子类定义的实例方法中可以通过 super 来访问父类中被隐藏的实例变量.