关于访问修饰符对重写父类方法的影响

  • 结论
    • 代码样例
    • 子类

结论

子类重写父类的方法;
1.父类中私有方法不能被重写。因为父类私有方法子类可理解为被子类继承,但是不被子类可见,不可访问,当然就无法重写了(更正修复)
2.父类中方法有final修饰的不能被重写
3.子类所重写的方法的访问修饰符必须高于或者等于父类的访问修饰符。
4.如果父类的方法有返回值类型,则子类对应的方法的返回值须于父类相同或者是父类返回值的派生类(jdk1.5版本及以后的版本

代码样例

import java.util.ArrayList;
import java.util.List;public class Person {public List method1(){System.out.println("Person method1");return null;}protected ArrayList method2(){System.out.println("Person method2");return null;}void method3(){System.out.println("Person method3");}private void method4(){System.out.println("Person method4");}
}

子类

重写method1方法,返回值为派生类
重写method2方法,子类的访问修饰符高于父类的访问修饰符

import java.util.ArrayList;public class XiaoMing extends Person{@Overridepublic ArrayList method1() {return null;}@Overridepublic ArrayList method2() {return super.method2();}@Overridevoid method3() {super.method3();}
}

关于子类重写父类方法的问题相关推荐

  1. 子类重写父类方法,调用时会调用子类重写之后的方法

    1, 以下代码执行的结果显示是多少( )? public class Demo {class Super{ int flag=1;Super(){test();}void test(){System. ...

  2. java多态实现示例,以及子类重写父类方法调用父类方法

    多态 多态存在的三个必要条件:继承,重写,父类引用指向子类对象, 当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则error:如果有,调用子类的同名方法. example: pack ...

  3. 子类重写父类方法时权限修饰符的关系

    子类在重写父类方法时,必须拥有不小于父类的权限. 例如如下示例: public class TestPriority {protected int method1(int a, int b){retu ...

  4. java继承 子类重写父类方法

    package com.addd;//多态 public class Sld {private String name = "zhangsan";public Sld() {aaa ...

  5. Java中关于子类重写父类方法的坑

    什么是方法重写? 设类B继承自类A.在A中定义方法了method_A,在B中定义方法了method_B.若method_B的签名等价于method_A的签名,则称B重写了A的method_A方法. 方 ...

  6. 【C++ 语言】面向对象 ( 继承 | 重写 | 子类调用父类方法 | 静态多态 | 动态多态 | 虚函数 | 纯虚函数 )

    文章目录 类的继承 方法的重写 子类中调用父类方法 多态 虚函数 虚函数示例 纯虚函数 相关代码 类的继承 1. 继承表示 : C++ 中继承可以使用 ":" 符号 , 格式为 & ...

  7. 子类重写父类构造器以及其他方法

    若父类重写了自身的构造器,并且还实现了自己的方法,那么,当子类继承父类后,重写自身的构造器和重写父类的其他方法时,搭配super()或者super.method()时候,会出现什么现象呢? 先看构造器 ...

  8. Java中重写父类方法

    package four; //定义一个类 class Animals{String name;void shout(){System.out.println("动物发出叫声"); ...

  9. java重写父类方法_重写父类方法

    在继承关系中,子类会自动继承父类中定义的方法,但有时在子类中需要对继承的方法进行一些修改,即对父类的方法进行重写.需要注意的是,在子类中重写的方法需要和父类被重写的方法具有相同的方法名.参数列表以及返 ...

最新文章

  1. CNN模型复杂度(FLOPs、MAC)、参数量与运行速度
  2. ASP.NET MVC Model绑定(二)
  3. 机器学习相关——SVD分解
  4. java我的世界显示合成表_我的世界:谁动了我的合成表?每10秒打乱合成配方,你撑不过一晚...
  5. java--用 * 打印出各种图形(新手请进)
  6. 周博磊自述5年研究经历:一个神经元的价值和一个神经病的坚持
  7. lua学习之类型与值篇
  8. 有没有想过,你眼中的SQL进阶,别人看来连入门都不是?
  9. linux可以修改日期格式吗,如何在Linux中使用date命令修改日期时间
  10. FFmpeg下载秒级 支持各个平台各个版本
  11. android中java中的开方
  12. 电力电子技术(17)——交流电力控制电路和交交变频电路
  13. 【离散数学】第二章 笔记(完)
  14. 国科大学习资料--人工智能原理与算法-第十四次作业解析(学长整理)
  15. 徐志果:创业就是遇见更好的自己(我的成长之路)
  16. 以太网,令牌网,FDDI,ATM是什么?有什么区别?
  17. Pycharm的python interpreter选择
  18. JAVA服务实例内存高问题排查及解决
  19. 文明5美丽新世界神系信条作用及评价
  20. OpenGLES性能优化

热门文章

  1. 寒假还在纠结考研还是就业,听听研究生毕业的上班狗怎么说?
  2. flask内容学习第三天(flak中的csrf跨站请求)
  3. Python使用turtle画一朵美丽的玫瑰花
  4. 在移动硬盘里移动视频文件到移动硬盘 另外一个文件夹 显示正在计算_稳定可靠的数据之仓 柯达X200 SSD固态移动硬盘体验评测...
  5. vivo手机的微信消息不提示问题解决
  6. 8 大主流自媒体平台优缺点分析以及运营建议
  7. ubuntu安装eclipse web和jeez插件处想 Cannot satisfy dependency问题
  8. java何时new_何时使用lambda,何时使用Proc.new?
  9. Windows下代码比较工具Meld diff 以及 VScode配置,解决“Meld Diff Error: Error running diff command! StdErr: ‘meld‘ �
  10. 【深入理解JVM】:HotSpot垃圾收集器