作用
当前对象的父类对象,在子类中的某一个方法中,去调用父类被覆盖的方法,此时的解决方案: 使用super关键字
Super关键字使用场景
- 可以使用 super解决子类隐藏了父类的字段情况., 该情况,我们一般不讨论,因为破坏封装
- 在子类方法中,调用父类被覆盖的方法
- 在子类构造器中,调用父类构造器,此时必须使用 super语句: super([实参])
static 不能和 super 以及 this 共存
子类初始化过程
在创建子类对象之前,会先创建父类对象,调用子类构造器之前,在子类构造器中会先调用父类的构造器,默认调用的是父类无参数构造器
隐藏
- 满足继承的访问权限下,隐藏父类静态方法:若子类定义的静态方法的签名和超类中的静态方法签名相同,
那么此时就是隐藏父类方法。注意:仅仅是静态方法,子类存在和父类一模一样的静态方法 - 满足继承的访问权限下,隐藏父类字段:若子类中定义的字段和超类中的字段名相同(不管类型),此时就是隐藏父类字段,此时只能通过 super 访问被隐藏的字段。
- 隐藏本类字段:若本类中某局部变量名和字段名相同,此时就是隐藏本类字段,此时只能通过 this 访问被隐藏的字段。
方法隐藏
UML
什么是UML
又称标准建模语言,可以用来表示软件开发过程当中类与类之间的关系
主要模型
功能模型
从用户的角度展示系统的功能,包括用例图
对象模型
采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图
动态模型
展现系统的内部行为。 包括序列图、活动图、状态图
类图的画法
权限表示
1、public 公用的 :用 +
前缀表示 ,该属性对所有类可见
2、protected 受保护的:用 #
前缀表示,对该类的子孙可见
3、private 私有的:用 -
前缀表示,只对该类本身可见
4、package 包的:用 ~
前缀表示,只对同一包声明的其他类可见
5、静态成员: 用 _
表示