为何Java中子类重写方法的访问权限不能低于父类中权限
参考:http://zhidao.baidu.com/link?url=E-c1LVmYCi3I-X1u5imdsDsdoyfeY2dJau6tU1bWnf4QAS4uthnM_8ffm6K177GE8FMdA8dI7eEofepPzfR_fq
因为 向上转型及Java程序设计维护的原因
例:
假设一个父类A 拥有的方法 public void setXXX(){} 可以被其他任意对象调用
这个方法被子类B 覆写后 为 void setXXX(){} 即 默认的 访问权限 只能被本包极其子类 所访问
假设 其他包中的对象 C 调用 方法为:
get( A a){
a.setXXX();
}
而此时传入的对象为B类对象,假设为b此时b将转型为a但是b中的setXXX() 调用权限
已经被缩小了这将造成错误。所以子类对象不能比父类对象访问权限大
以上只是一个例子还有其他出于易维护、易代码结构设计的设计思想原因
其他:子类中重写的方法抛出的异常应该为父类中方法的子异常或相同异常,并且抛出的异常种类不能多于父类中的方法。
实际上是遵循里氏替换原则
为何Java中子类重写方法的访问权限不能低于父类中权限相关推荐
- java 重写方法 访问权限_为何Java中子类重写方法的访问权限不能低于父类中权限(内含里氏替换原则)...
为何Java中子类重写方法的访问权限不能低于父类中权限 因为 向上转型及Java程序设计维护的原因 例: 假设一个父类A 拥有的方法public void setXXX(){}可以被其他任意对象调用这 ...
- Objective-c 子类重写方法调用[super method]小实验
最近温习<learn objective-c on the mac> 第4章关于重写的调用了[super setFillColor:c]很不理解其作用,可能是因为翻译逻辑不清的原因吧,特地 ...
- 用JQuery中的Ajax方法获取web service等后台程序中的方法
用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...
- java 接口的访问权限_证明接口interface中定义的方法的访问权限为public
如题,证明Java中接口文件中定义的方法访问权限为public. 众所周知,接口中的方法默认是public abstract 类型的,它必须由子类实现之.那怎么证明呢,反射. 定义接口文件 packa ...
- java继承 子类重写父类方法
package com.addd;//多态 public class Sld {private String name = "zhangsan";public Sld() {aaa ...
- 子类重写方法aop切不到_SpringBoot源码之旅——AOP
前提 本文代码基于SpringBoot的2.1.1.RELEASE版本,基于@AspectJ注解的AOP. 理解AOP,需要先搞懂Spring IoC容器,bin17:SpringBoot源码之旅-- ...
- java如何添加子类,java – 防止子类添加方法
如果你真的不想这样做..一种方法是以编程方式检查抽象类构造函数,即类中定义的方法是允许的方法. import java.lang.reflect.Method; import java.util.Ar ...
- js代码 父页面调用子页面中的js方法,子页面调用父页面中的js方法
文中代码亲测可用,转载以示尊重!!! <!--主页面中的JS代码--> <script type="text/javascript"> //调用子页面的方法 ...
- Java继承中为什么不可以降低父类重写方法的访问权限
1 2 3 4 5 6 7 8 9 10 class A { protected int method1(int a, int b) { return 0; } } public class B ex ...
最新文章
- rabbitmq 集群搭建
- Matlab元胞数组操作
- C++ static静态成员变量
- 计算机辅助功能包括什么,CAD软件是什么?有什么功能?
- finalize作用
- 项目过程中的部分逻辑
- php超小免杀大马_2019年最新免杀PHP大马(过D盾,过安全狗)
- iMeta | 南医大余光创组ggtree最新文章-系统发育树存储与可视化的数据结构
- (附源码)spring boot记账微信小程序 毕业设计 180815
- 关联规则:R与SAS的比较
- 安卓手机软件性能测试,四款安卓公交查询软件基本性能测试
- velodyne运行Loam_velodyne过程记录
- MES的发展历程及功能模块
- 微信商城 开发的准备工作
- 现实黑镜 | 面对死亡,你愿意将意识上传 获得“永生”吗?
- 计算机辅助的临床会谈,天智航参加第十九届国际计算机辅助骨科学术大会
- Matplotlib学习手册A005_Figure的add_axes()方法
- 短视频推荐算法过程分享,论如何针对推荐算法来优化短视频内容
- 用户名片 2:Nginx 与图片深度解析
- 【物理应用】基于Matlab模拟极化雷达回波
热门文章
- NYOJ 12 喷水装置(二)
- 【转】CAD2012打开自动关闭解决方法
- Failed to install*.apk on device '': timeout
- SSL 数字证书助力电子商务,让您网络购物更安心
- 委托与事件代码详解与(Object sender,EventArgs e)详解
- python爬虫流程-Python:爬虫处理流程及网页解析
- python安装库-python 安装库
- python语言入门自学-如何系统地自学 Python?
- python编程零基础免费网课-Python网课推荐——免费学习Python编程
- python语言入门z-python3基础笔记(一)