首页 > 学院 > 开发设计 > 正文

覆写(重点)

2019-11-10 17:57:20
字体:
来源:转载
供稿:网友

如果子类中定义了和父类相同的方法名称时,就称为“覆写”;

一、方法的覆写(核心)

范例1:实现覆写

 

 

 

结论:

子类定义了和父类的方法名称相同,参数相同,返回值相同的方法后,表示覆写了父类中的方法,而当实例化的是子类对象,所调用的方法一定是被子类覆写的方法;

范例2:

 

有了继承概念后对于this和super的使用一定要清楚:

1)this:表示先从本类查找,如果本类没有则查找父类;

2)super:表示不查找本类,而是直接查找父类;

结论:

若想在子类中调用已经被子类所覆写的方法,那么在方法前加“supper.方法()”的形式

但是在进行方法覆写时关于权限的问题,被子类覆写的方法不能拥有比父类更严格的访问控制权限。PRivate < default (不写) < public。

若一个方法本身是public被子类覆写时变为了private,则称为权限严格了,那么此时子类覆写时,权限只能写public。如果父类的方法使用的是default权限,那么子类可使用default或public来表示;

二、面试题:OverLording(重载)、override(覆写)的区别

 

在方法重载时返回值类型可以不同,但是从代码开发来讲,返回值类型一定要保持相同。

 

三、属性的覆盖(无用)

当子类定义了和父类相同的属性名称时就被称为了属性的覆盖

一般而言属性都要求被封装,一旦属性被封装了,又何来覆盖呢?

四、this和super区别

总结:

1.this:调用本类属性(this .属性)、本类普通方法(this .方法())、调用构造(this(),必须放在首行),表示当前对象;

2. Super:由子类调用父类属性(super .属性)、调用父类非私有方法(super .方法())、调用父类构造(super(),必须放在子类构造首行);

3.当使用this和super调用构造时不能同时出现


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表