A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张晓珊 中级黑马   /  2015-5-26 20:43  /  3383 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        面向对象的三大特征,封装,继承和多态。在继承的好处是抽取了重复代码,建立了类之间的联系,但是继承的坏处是耦合性太强,即子类对父类的依赖性太强。
       但是面向对象的思想就是尽可能用类来解决问题,基本上我们用到的类大部分都是继承了父类,他的父类又继承了自己的父类,以此类推,往上会有很多的父类,那么这样看来耦合性不是太强,是非常强啊。那么关于继承和耦合性之间的平衡有什么技巧吗?什么情况下我们可以放心的用继承,什么情况下需要注意耦合性呢?

8 个回复

倒序浏览
OC才接触不久,弱弱的问一句,什么是耦合性?:D
回复 使用道具 举报
蜡笔小炎 发表于 2015-5-26 20:49
OC才接触不久,弱弱的问一句,什么是耦合性?

我上边不是说了么,耦合性就行两个类之间的相互依赖性太强。比如两个类:一个学生类,一个人类,学生继承了人,当有一天你的人这个类出问题了不能用了,那么你下边的学生类会因为人类的错误也不能用了,这个就是耦合性。
回复 使用道具 举报
张晓珊 发表于 2015-5-26 21:02
我上边不是说了么,耦合性就行两个类之间的相互依赖性太强。比如两个类:一个学生类,一个人类,学生继承 ...

哦~~~~~~~这个意思啊
回复 使用道具 举报
有ARC就不用注意了
回复 使用道具 举报
XiaoBaoMi 发表于 2015-5-27 07:53
有ARC就不用注意了

同学你知识搞混了吧?ARC是内存管理,耦合性是程序质量的好坏。两个没有关系吧?
回复 使用道具 举报
你再想想
回复 使用道具 举报
晗修 中级黑马 2015-6-15 22:31:10
8#
不需要纠结这个 既然用了继承 说明父类的属性必然是子类所必须有或者大概率有的 完全没有必要考虑解耦的事情;
应该考虑的是如何从子类中抽象出一个合格的父类——在能够继承的同时还能够形成多态 而不是 除了这个子类就不能是其他子类的父类了;

如果可以完全解耦的情况下 那就用协议而不需要用继承。
回复 使用道具 举报
zilin 中级黑马 2015-6-15 22:38:50
9#
可以子类多增加一些自己的特性,这样继承下去每一代的耦合性都会改变。个人愚见。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马