java的继承
破坏了封装性,因为这会将父类的实现细节暴露给子类。对于后半句理解不能,继承会暴露父类的实现细节吗???求大侠详细解答~~~...
破坏了封装性,因为这会将父类的实现细节暴露给子类。
对于后半句理解不能,继承会暴露父类的实现细节吗???求大侠详细解答~~~ 展开
对于后半句理解不能,继承会暴露父类的实现细节吗???求大侠详细解答~~~ 展开
7个回答
展开全部
继承破坏了封装性,换句话说,子类依赖于父类的实现细节。 需要进一步说明,这与方法调用不同,方法调用也依赖被调用的方法,但是并不依赖细节,也就是说,只要方法整体实现没有问题,方法调用就没有问题,但是继承很容易改变父类实现的细节(所以父类中能写成final尽量写成final),即使父类整体没有问题,也有可能因为子类细节实现不当,而破坏父类的约束。这使得继承具有脆弱性。 或者说,继承让子类很容易破坏影响父类的约束,父类约束的实现依赖子类的实现,并且,父类在他的后续版本中可以获得新的方法,而这个会对子类造成影响,虽然子类的代码没有变化,当初子类实现的时候也不知道未来的变化,显得很无辜。 Here, overriding is the root of evil..... 继承使得到的API限制在原始想重用的实现上,导致可变更性变差,限制了你的类的性能。 继承使得有了更多机会来暴露了类内部的细节,比如Properties p的例子,p.getProperty(String key),p.get(String key)。 继承很容易传播现有API内部的缺陷
http://www.dewen.org/q/6210
http://www.dewen.org/q/6210
追问
额,你这不是手打的吧。。。能告诉我出处吗?我去看看,然后给分
展开全部
我怎么觉得这句话像在扯淡呢?
什么叫破坏了封装?
你封装时,访问控制是做什么用的??
如果都不想暴露给子类,不会定义成private的吗??
子类重写父类方法,那是子类自己的实现,跟你父类没有半毛钱关系。
所以说继承破坏封装,那是自己在封装父类时访问控制做得不好,跟集成本身没有关系。
java 的面向对象里,继承和封装 都是 很优秀的想法,不存在问题。 个人简介,一家之言,你可以再听听高人的见解。
什么叫破坏了封装?
你封装时,访问控制是做什么用的??
如果都不想暴露给子类,不会定义成private的吗??
子类重写父类方法,那是子类自己的实现,跟你父类没有半毛钱关系。
所以说继承破坏封装,那是自己在封装父类时访问控制做得不好,跟集成本身没有关系。
java 的面向对象里,继承和封装 都是 很优秀的想法,不存在问题。 个人简介,一家之言,你可以再听听高人的见解。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
(I)继承的定义(1)继承就是在现有类的基础上构建亲的子类。(2)当一个类继承一个现有类后,可以对被继承类中的属性和方法进行重用。(3)在Java中,一个类只能有一个父类,不支持多继承。(II)继承的实现(1)语法:<修饰符>class<子类名>extends<父类名>{.....}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果全是重载父类的protected方法应该也不算暴露父类的实现细节吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看看java反射机制
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
老爸的东西不给儿子用,还叫什么老爸,这不叫暴露
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询