黑马程序员技术交流社区

标题: 关于子父类方法复写的 [打印本页]

作者: 张东健    时间: 2014-1-8 21:48
标题: 关于子父类方法复写的
java中为什么子类覆盖父类中的方法时权限需要不小于父类的该方法权限?
java很多是对生活中事物的映射,比如继承 ,比如抛异常子类的异常只能是父类异常的子集
对于覆盖,有谁能用大白话解释下
作者: 王新年    时间: 2014-1-8 22:16
如果在父类中是public的方法,子类中将其降低访问权限为private,那么子类中重写以后的方法对于外部对象就不可访问了,这个就破坏了继承的含义

作者: 小小菜鸟    时间: 2014-1-8 22:17
举个例子,在父类中是public的方法,如果子类中将其降低访问权限为private,那么子类中重写以后的方法对于外部对象就不可访问了,这个就破坏了继承的含义。
覆盖时,要么都静态,要么都不静态。 (静态只能覆盖静态,或者被静态覆盖)
作者: 程澄    时间: 2014-1-8 22:23
因为子类一般都会比父类功能多,所以权限要大于父亲
还有 A a = new B(),B继承A,重写父类方法s(),如果在子类中变为了私有方法,那么调用a.s()就会出错
作者: IT人    时间: 2014-1-9 10:30
补充一下!静态形式上是可以覆盖的!但是没有实际意义,所以一般认定静态不能覆盖
作者: 渐渐不懂了    时间: 2014-1-9 12:50
这就好比早起的手机一样,你现在的手机所有的功能都大于早期的,它造出来就是为人服务的,如果比以前的手机功能多但是你不能用,有什么意思呢?你说是这个意思吧!就好比Java中的继承了
作者: 张东健    时间: 2014-1-10 19:27
谢谢各位同学的不吝赐教
作者: 张东健    时间: 2014-1-10 19:50
怎么提问结束 在哪呢,找了半天没找到
作者: DxxD    时间: 2015-3-12 14:30
学习了。。。:)




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2