0%

super关键字

作用

当前对象的父类对象,在子类中的某一个方法中,去调用父类被覆盖的方法,此时的解决方案: 使用super关键字

Super关键字使用场景

  1. 可以使用 super解决子类隐藏了父类的字段情况., 该情况,我们一般不讨论,因为破坏封装
  2. 在子类方法中,调用父类被覆盖的方法
  3. 在子类构造器中,调用父类构造器,此时必须使用 super语句: super([实参])

static 不能和 super 以及 this 共存

子类初始化过程

在创建子类对象之前,会先创建父类对象,调用子类构造器之前,在子类构造器中会先调用父类的构造器,默认调用的是父类无参数构造器

隐藏

  1. 满足继承的访问权限下,隐藏父类静态方法:若子类定义的静态方法的签名和超类中的静态方法签名相同,
    那么此时就是隐藏父类方法。注意:仅仅是静态方法,子类存在和父类一模一样的静态方法
  2. 满足继承的访问权限下,隐藏父类字段:若子类中定义的字段和超类中的字段名相同(不管类型),此时就是隐藏父类字段,此时只能通过 super 访问被隐藏的字段。
  3. 隐藏本类字段:若本类中某局部变量名和字段名相同,此时就是隐藏本类字段,此时只能通过 this 访问被隐藏的字段。

方法隐藏

UML

什么是UML

又称标准建模语言,可以用来表示软件开发过程当中类与类之间的关系

主要模型

功能模型

从用户的角度展示系统的功能,包括用例图

对象模型

采用对象、属性、操作、关联等概念展示系统的结构和基础,包括类图、对象图、包图

动态模型

展现系统的内部行为。 包括序列图、活动图、状态图

类图的画法

权限表示

1、public 公用的 :用 + 前缀表示 ,该属性对所有类可见
2、protected 受保护的:用 # 前缀表示,对该类的子孙可见
3、private 私有的:用 - 前缀表示,只对该类本身可见
4、package 包的:用 ~ 前缀表示,只对同一包声明的其他类可见
5、静态成员: 用 _ 表示

↓赏一个鸡腿... 要不,半个也行↓