覆写

现在已经清楚了继承的基本概念,那么此时就有可能出现这样的一种情况,如果子类现在定义了与父类相同的方法或者是属性的时候,这样的操作就称为覆写。

一.方法的覆写(重点

所谓的方法的覆写指的是子类定义了与父类方法名称、参数类型及个数完全相同的方法。但是被覆写的方法不能够拥有比父类更为严格的访问控制权限。

在以后进行覆写方法使用的时候一定要关注以下2点:

①你当前使用的对象是通过哪个类new的;

②当调用某一个方法,如果该方法已经被子类所覆写了,则调用的一定是被覆写的方法。

但是在进行方法覆写的时候也有一个明确的要求:被覆写的方法不能够拥有比父类更为严格的访问控制权限。关于访问控制权限才是封装的全部内容,现在已经接触过三种访问控制权限:private<default<public。

那么也就意味着父类中的方法使用了public进行定义,那么子类中使用的权限只能够是public,而如果父类的方法使用的是default权限,那么子类可以使用default或者是public。

结论:以后写方法就写public,至少能保证你在99.9999%情况下是正确的。同时以后只要写属性,98%的情况下都写private。

二. 属性覆盖(了解)

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

三. super关键字

在之前讲解子类对象实例化操作的时候讲解过了super()的形式,当时的主要作用是由子类调用父类构造方法的时候才使用的,那么在进行覆写的操作过程之中,子类也可以使用super.方法()、super.属性明确的调用父类中的方法或属性。

如果此时直接写上了"this.printInfo()"操作,那么就表示先从本类查找所需要的方法。如果本类没有,则去找父类中指定的方法进行调用。而如果是“super.printInfo”表示的是不查找本类而直接调用父类中的方法。

通过一系列的讲解可以发现super和this使用形式上非常的相似,但是两者最大的区别是super是子类访问父类的操作,而this是本类的访问处理操作。 

能使用super.方法()一定要明确的标记出是父类的操作。

总结:

1. 子类覆写父类的方法是因为父类的方法功能不足,才需要覆写;

2. 方法覆写的时候使用的就是public权限,将父类的方法名称直接粘贴过来。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 命名要求 方法 分为普通方法、构造方法、set/get方法方法名前加两种类型,有返回值(8大数据类型),无返回值(...
    嘉美伯爵阅读 698评论 0 0
  • 概念:如果子类重写了父类:属性的覆盖与方法的覆写 方法的复写:子类定义了与父类方法名称,参数类型以及个数完全相同的...
    半心人6阅读 394评论 0 0
  • 一:java概述:1,JDK:Java Development Kit,java的开发和运行环境,java的开发工...
    ZaneInTheSun阅读 2,851评论 0 11
  • 故乡的形状 作者:千年不死等花开 梯形的夜尽做 菱形的梦 正方形的故乡 牵引 长方形的心情 圆椎乌鸫召唤圆柱的我 ...
    千年不死等花开阅读 535评论 47 30
  • 周翼明住在浦东新区,夏小环终于在来到上海的第三个夏天踏上了这片陌生又可爱的土地。从来没踏足过浦东的夏小环觉得这里确...
    游夏阅读 422评论 0 0

友情链接更多精彩内容