java继承简述及方法覆盖
1.继承
---解决代码的重复问题。
---实际上是构造一个体系
2.结构
3.java中的继承规则
-- 在java中除了object类外,其他类都有一个直接父类(非直接父类:父类的父类),每一个类都是object的子类。
-- java中支持多重继承,但不支持多继承
eg: 多重继承
public class A extends B{ }
public class C extends A{ } // A,B都是C的父类
-- 父类中成员修饰符,子类的继承权限
1.public 在任意地方都可以继承
2.protected (子类继承修饰符),不在同一个包中,子类也可以继承。
3.缺省 在同一个包中,子类可以继承
4.private 子类不可以继承
5.父类的构造器,子类也不能继承(构造器的名称必须和类名相同)
4.覆盖(@override)
覆盖只是针对父类中的方法来说的,字段没有覆盖
作用:当父类中的某个方法不适用于特别的子类时,这时子类可以重写该方法和方法体
具体操作如图:
方法覆盖原则
1.签名特征必须一致(方法名+参数列表)
2.返回值类型与父类相同(或者是父类中返回值类型的子类)
3.权限与父类相同(或者比父类权限大)
总之,将父类的方法直接粘过来,只修改方法体即可
方法的重载(overload)和方法覆盖(override)是2个完全不同的概念。
和覆盖相似的是“ 隐藏 ”(遮蔽),隐藏有下面几种方式:
1.在满足继承权限的情况下(即不是private修饰的),隐藏父类的静态方法,则子类的方法必须和父类中那个需要隐藏的静态方法一模一样。
2.在满足继承权限的情况下,隐藏父类字段:子类中的字段名必须和父类中相同(类型可以不相同),此时可以通过super对父类字段进行访问。