java子类方法权限为什么要等于大于父类的访问权限?

问题描述

java子类方法权限为什么要等于大于父类的访问权限?

如题.这是什么原因.?重写为什么字类的方法要大于父类的方法.

解决方案

为了说明这个问题,你需要了解一个概念,或者说OO设计的一个准则,叫做里氏替换准则

参考:
http://blog.csdn.net/lovelion/article/details/7540445

如果你看懂了“在软件中将一个基类对象替换成它的子类对象,程序将不会产生任何错误和异常,反过来则不成立,如果一个软件实体使用的是一个子类对象的话,那么它不一定能够使用基类对象。”

我们来看为什么“子类方法权限为什么要等于大于父类的访问权限”,因为只有这样,基类才一定可以用派生类代替。如果派生类的访问权限变小了,这个原则就没法成立了。

解决方案二:

这个应该算是Java世界的准则,就像大自然里光速是极限,1+1只能等于2一样
没有规矩不成方圆,用脚玩的叫足球,用手玩的叫篮球,既然这个东西叫java,就得遵守规矩

解决方案三:

用了这么久都不知道这个名词啊。汗。。。。里氏替换准则

时间: 2024-09-18 18:31:25

java子类方法权限为什么要等于大于父类的访问权限?的相关文章

LFCS 系列第八讲:管理用户和用户组、文件权限和属性以及启用账户 sudo 访问权限

由于 Linux 是一个多用户的操作系统(允许多个用户通过不同主机或者终端访问一个独立系统),因此你需要知道如何才能有效地管理用户:如何添加.编辑.禁用和删除用户账户,并赋予他们足以完成自身任务的必要权限. (LCTT 译注:本篇原文章节顺序有误,根据理解做了调整.) 添加用户账户 添加新用户账户,你需要以 root 运行以下两条命令中的任意一条: # adduser [new_account] # useradd [new_account] 当新用户账户添加到系统时,会自动执行以下操作: 自动

Java语言入门教程(三):Java语言的访问权限修饰符

上篇文章中,提到了Java类需要打包,打包后可以进行访问权限控制.本文 中,将对Java语言中的访问权限修饰符,进行简单介绍. 一个Java应用有很多类,但是有些类,并不希望被其他类使用.每个类中都 有数据成员和方法成员,但是并不是每个数据和方法,都允许在其他类中调用. 如何能做到访问控制呢?就需要使用访问权限修饰符. Java语言中的访问权限修饰符有4种,但是仅有3个关键字,因为不写访问权 限,在Java中被称为默认权限,或同包权限,本文中以(default)代替.下面 按照权限从小到大的顺序

java类访问权限与成员访问权限解析_java

在写代码的时候有个问题:包内定义了一个接口类,另外一个包要实现它,这里采用接口隔离与依赖倒置原则,将两个包的依赖关系倒置过来.但是,这里就遇到了一个问题,实现类采用工厂模式来实例化,所以实现类就不想暴露给包外,但是实现类还要实现public接口.所以这里有产生了一个疑问,如果类是default类型,成员函数是public类型,那么访问限制是怎样的呢? 实现验证 1. 先在一个包中定义一个接口类: package mytest public interface ClassAccessTest {

C++ 的三种访问权限与三种继承方式_C 语言

三种访问权限 我们知道C++中的类,有三种访问权限(也称作访问控制),它们分别是public.protected.private.要理解它们其实也很容易,看下面了一个例子. 父类: class Person { public: Person(const string& name, int age) : m_name(name), m_age(age) { } void ShowInfo() { cout << "姓名:" << m_name <&l

窥探Swift之类的继承与类的访问权限

上一篇博客<窥探Swift之别具一格的Struct和Class>的博客可谓是给Swift中的类开了个头.关于类的内容还有很多,今天就来搞一下类中的继承以及类的访问权限.说到类的继承,接触过面向对象编程(OOP)的小伙伴并不陌生,继承就是OOP编程中几大特征之一,所以还是有必要把类的继承拎出来聊聊的.说到访问权限,这个在OOP编程中也是不可或缺的.如果你接触过其他OOP的语言,你应该对private, public, protected并不陌生.在Swift这么面向对象的编程语言中,也有类似的概

利用A、G、DL、P策略来管理网络资源访问权限

如现在某个企业是通过域来管理的.在域中,有三台打印机,其中,销售部门只能够访问打印机A;管理部门只能够使用打印机B;财务部门可以访问打印机C,当打印机C不能够使用时,则可以使用打印机B.在域中,还有三个共享文件夹,其中文件夹甲是销售部门专用文件夹,只有销售员工以及销售总监与财务总监可以访问;文件夹乙是财务专用文件夹,只有财务部门以及财务总监帐户可以访问;文件夹丙是一个公共文件夹,任何部门员工都可以访问.针对这种应用的话,该如何来管理帐户的访问权限呢?最简单也就是最原始的方法,就是没每个帐户设置访

QQ空间怎么设置访问权限

下面小编将以自己的QQ空间为例,向大家分别讲解在电脑上和手机上设置访问权限的方法. 一.电脑上QQ空间访问权限设置方法 第一步:那肯定是打开自己的QQ空间: 第二步:点击页面右上角的"设置"按钮,选择"权限设置",如下图所示: 第三步:重点来了,这一块大家根据自己的情况来进行选择: 第四步:设置好之后点击下面的保存按钮即可. 二.手机上QQ空间访问权限设置方法 第一步:依然是打开自己的QQ空间 第二步:点击右上角的"设置按钮": 第三步:点击&q

批处理添加iis wpg、users对IIS的访问权限

原文 批处理添加iis wpg.users对IIS的访问权限 上一篇,我们学习了如何使用批处理删除各种帐户在IIS中的访问权限.下面,我们来看看,如何通过批处理添加iis_wpg.users对IIS的访问权限. ①添加iis_wpg的访问权限 cacls "%SystemRoot%" /g iis_wpg:r /e  cacls "%SystemDrive%/Program Files/Common Files" /g iis_wpg:r /e cacls &quo

继承-java 子类构造函数要用到父类的方法判断成功后再构造,但这样的话super()不是第一句就报错

问题描述 java 子类构造函数要用到父类的方法判断成功后再构造,但这样的话super()不是第一句就报错 父类是点,里面有方法判断是不是同一个点,子类是直线,我在子类直线构造时要判断两个点是否相等,因此调用父类的方法,但是这样下面先构造父类super()就不对,该怎么解决呢? 谢谢解答. 解决方案 首先,你的父类是不是有有参构造函数呢?如果有的话,子类构造函数的第一句就必须是super(参数)调用父类的构造函数. 其次,父类有有参数构造函数,第一句就先super(参数),然后再调用父类的方法.