java继承简述及方法覆盖

1.继承

---解决代码的重复问题。

---实际上是构造一个体系

2.结构

java继承简述及方法覆盖
extends


java继承简述及方法覆盖
减少代码重复

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)

覆盖只是针对父类中的方法来说的,字段没有覆盖

作用:当父类中的某个方法不适用于特别的子类时,这时子类可以重写该方法和方法体

具体操作如图:



java继承简述及方法覆盖
override

方法覆盖原则

1.签名特征必须一致(方法名+参数列表)

2.返回值类型与父类相同(或者是父类中返回值类型的子类)

3.权限与父类相同(或者比父类权限大)

总之,将父类的方法直接粘过来,只修改方法体即可

方法的重载(overload)和方法覆盖(override)是2个完全不同的概念。


和覆盖相似的是“  隐藏  ”(遮蔽),隐藏有下面几种方式

1.在满足继承权限的情况下(即不是private修饰的),隐藏父类的静态方法,则子类的方法必须和父类中那个需要隐藏的静态方法一模一样。

2.在满足继承权限的情况下,隐藏父类字段:子类中的字段名必须和父类中相同(类型可以不相同),此时可以通过super对父类字段进行访问。

java继承简述及方法覆盖
谢谢阅读!