• Java进阶之路--继承中的方法重写与属性覆盖


    1、Java继承中属性覆盖

    请参考此博客:Java子类父类属性的覆盖

    重点:(属性的覆盖是针对子类与父类有相同的属性名而言的)

    <1>final常量可以被覆盖

    <2>静态变量和静态常量属于类,不属于对象,因此它们不能被覆盖。

    <3>friendly(默认情况,不写)、protected和public修饰符并不影响属性的覆盖。

    <4>由于private变量不可以被子类继承,受访问权限的限制,它不能被覆盖。

    <5>属性的值取父类还是子类并不取决于我们创建对象的类型,而是取决于我们定义的变量的类型。

    ParentClass subClass=new SubClass(); //属性为父类的属性

    2、Java方法重写

    请参考此博客:方法能重写,属性能重写吗?

    重点:(属性的覆盖是针对子类与父类有相同的方法名而言的)

    <1>重载与重写的区别:

    重载(也叫过载)时只与方法特征有关,那么什么是方式特征呢?一个方法的特征(也可叫方法签名)仅包括方法的名字、参数的个数、类型、顺序(实质上就是参数列表),而不包括方法的返回类型、访问修饰权限与所抛出的异常。

    重写(覆写)是会进一步检查两个方法的返回类型是否相同、访问修饰权限是否缩小(假设public->protected方向是缩小,反之叫扩大)和抛出的异常范围是否扩大。重写时不可以缩小修饰符权限,不可以扩大异常范围。

    重载一般是指在同一个类中多个方法间,但也可重父类的的方法,而重写只发生面父子与子类的方法间。

    <2>私有方法(不可以重写)

    因为子类不可以继承父类的私有方法,所以即使试着在子类覆写了父类的私有方法,不管访问权限修饰符是什么,在编译时也不会报错。

    先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

  • 相关阅读:
    重学C++重构你的C++知识体系 升级版 学习笔记
    多线程详解(二)静态代理模式&Lambda表达式
    九种方式,教你读取 resources 目录下的文件路径
    创新实战|高转化网站首页设计的10大关键要素
    QML21、常规组件Window
    C到C++/编译过程/链接方式/内存模型/STL
    掌握Go语言:深入理解Go语言中的数组和切片,灵活处理数据的利器(16)
    思维+启发式合并
    【HMS Core】集成地图服务不显示地图问题
    Unity的UI管理器
  • 原文地址:https://blog.csdn.net/m0_67403188/article/details/126108374