为什么不要继承一个实现好的类,而要继承抽象类或接口 为什么不要继承一个实现好的类,而要继承抽象类或接口?听说是防止向下转型判断造成的程序复用性丢失,但是使用了接口就能防止向下转型问题吗?好像这个和向下转型没什么关系吧. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.为什么不要继承一个实现好的类,而要继承抽象类或接口?这个涉及到设计原则,可以看看依赖倒置原则(dependence inversion principle, DIP),依赖于抽象而不依赖于具体细节。顺带看看接口隔离原则吧http://blog.sina.com.cn/s/blog_4ab057eb0100im0u.html2.听说是防止向下转型判断造成的程序复用性丢失,但是使用了接口就能防止向下转型问题吗?好像这个和向下转型没什么关系吧.向上转型是安全的,向下转型却存在问题,若是父类指向的实例不是向下转型的目标类型,将导致错误发生。使用接口可以在一定程度上改善这种情况,貌似关系并不是很大 没那么复杂, 完全可以继承一个实现好的类,只是判断上不太方便。例如 基类 人 , 实现了一个子类 男人。如果你要做一个 女人的子类, 可以继承男人,也可以继承人。但是如果你继承了男人。 当判断 当前类是否是男人时(instanceof), 由于女人类是男人的子类,会导致判断错误。而如果你要做一个老男人类,当然应该继承男人类了。 编程题。求解 (急)菜鸟问题:javascript 点击图片后让其显示在前端怎么实现 大侠们帮我看看这个归并排序错在哪里了? Map<? extends K, ? extends V> m这是什么意思? 到底环境变量有什么用? 如何知道当前JVM所运行有那些class 请问JAVA怎么得到一个字符的ASC值。 请谈谈java的优点和缺点,最好能和vc,delphi,vb作个比较。 jtree 如何设置默认节点! 多线程并发访问全局变量引起空指针问题 求讲解代码中一段方法 代码错误请大家帮看看
这个涉及到设计原则,可以看看依赖倒置原则(dependence inversion principle, DIP),依赖于抽象而不依赖于具体细节。
顺带看看接口隔离原则吧
http://blog.sina.com.cn/s/blog_4ab057eb0100im0u.html
2.听说是防止向下转型判断造成的程序复用性丢失,但是使用了接口就能防止向下转型问题吗?
好像这个和向下转型没什么关系吧.
向上转型是安全的,向下转型却存在问题,若是父类指向的实例不是向下转型的目标类型,将导致错误发生。使用接口可以在一定程度上改善这种情况,貌似关系并不是很大
没那么复杂, 完全可以继承一个实现好的类,只是判断上不太方便。例如 基类 人 , 实现了一个子类 男人。
如果你要做一个 女人的子类, 可以继承男人,也可以继承人。
但是如果你继承了男人。 当判断 当前类是否是男人时(instanceof), 由于女人类是男人的子类,会导致判断错误。而如果你要做一个老男人类,当然应该继承男人类了。