感觉模模糊糊,总好像有层纸没有捅破.
大家一般都是在什么情况下派生新类的啊?还请不吝赐教,感激涕零!
14 个解决方案
#1
一般在有总--分或粗--精结构的时候派生新类。
比如我们需要矩形类、椭圆类、多边形类
那么就新建一个面类,它有:名称,类型,填充颜色等公共属性,和(可重载的)绘图等公共方法
然后再派生出矩形类、椭圆类、多边形类
你可能问为什么不直接建矩形类、椭圆类、多边形类呢?
首先,假如我们要引入图层,这就涉及到了图层的上移下移,在这种情况下,我们希望将所有元素存储在一个数组(容器)里,上面的派生类就有了独特的优势
然后,假设这时我们需要加入一个圆形类,我们是不是要重新写一个类呢?只要从椭圆类里派生就可以了。
最后,使用了继承,能够使程序的结构条理清楚,可读性强,可扩展性强。
我也学习VC不久,上面是一点体会,不要见笑~
比如我们需要矩形类、椭圆类、多边形类
那么就新建一个面类,它有:名称,类型,填充颜色等公共属性,和(可重载的)绘图等公共方法
然后再派生出矩形类、椭圆类、多边形类
你可能问为什么不直接建矩形类、椭圆类、多边形类呢?
首先,假如我们要引入图层,这就涉及到了图层的上移下移,在这种情况下,我们希望将所有元素存储在一个数组(容器)里,上面的派生类就有了独特的优势
然后,假设这时我们需要加入一个圆形类,我们是不是要重新写一个类呢?只要从椭圆类里派生就可以了。
最后,使用了继承,能够使程序的结构条理清楚,可读性强,可扩展性强。
我也学习VC不久,上面是一点体会,不要见笑~
#2
当你需要在原有类的基础上进行功能扩展的时候
#3
当你发现原有类的功能不够多需要在此基础上添加功能时时,就需要派生出新类了。
#4
在父类的基础上进行细化、特例化。例如从human中派生出man和woman,后者是前者的特例,对前者进行细化,实现自己的个性功能
#5
难道楼主没学过面向对象?
#6
这个有规律吗?当你需要的方法没有时您就可以派生自己的类了
#7
编你的程序必定要派生类,改造类实现你设定的功能
书上例子一样派生新类,你可能没注意
书上例子一样派生新类,你可能没注意
#8
任何时候!
只要你觉得有需要,你就可以派生。
甚至,你觉得闲的无聊的时候,也可以派生一个子类,里面一行代码都没有,也是 OK 的。
关键是看你的功能,现有的类是不是能满足你的要求。如果能,那 OK,不用派生,
如果不能,选择一个你认为最接近的父类来派生。
只要你觉得有需要,你就可以派生。
甚至,你觉得闲的无聊的时候,也可以派生一个子类,里面一行代码都没有,也是 OK 的。
关键是看你的功能,现有的类是不是能满足你的要求。如果能,那 OK,不用派生,
如果不能,选择一个你认为最接近的父类来派生。
#9
我为什么不在父类添加新的成员函数以实现功能的扩展,而非要派生新类呢?
#10
首先,假如我们要引入图层,这就涉及到了图层的上移下移,在这种情况下,我们希望将所有元素存储在一个数组(容器)里,上面的派生类就有了独特的优势
这个解释说的很形象
这个解释说的很形象
#11
一般不要派生新类,对新手先把已有的类用好。等到那一天已有的类不能满足你的要求时,从一个基本可以使用的类,派生你的新类。
#12
已有功能不能满足你的需求 需要重新改写或派生存在的类 不过优先使用组合而不是继承
#13
能够不派生就不派生。
继承是毒药,万到不得已的时候不用。
组合好于继承
能够用结构搞定就别用类。
能够不用结构就不用结构,总之,奥卡姆剃刀法则
能够用10行代码搞定的事情别用50行去封装,就为了体现面向对象,设计模式,那不值得。适当的方法用在适当的地方。
1楼的例子是个坏的引导,很多例子都这么说,其实,java才这么做,因为java只有类操作能够实现,你用的是c,完成这样的任务灵活得多,不必非得派生一大堆类。
继承是毒药,万到不得已的时候不用。
组合好于继承
能够用结构搞定就别用类。
能够不用结构就不用结构,总之,奥卡姆剃刀法则
能够用10行代码搞定的事情别用50行去封装,就为了体现面向对象,设计模式,那不值得。适当的方法用在适当的地方。
1楼的例子是个坏的引导,很多例子都这么说,其实,java才这么做,因为java只有类操作能够实现,你用的是c,完成这样的任务灵活得多,不必非得派生一大堆类。
#14
同意6楼8楼的说法,要不要派生新类完全看你个人觉得是否需要,看你的编程习惯,另外13楼说得对,1楼的引导的确不好,那都是教科书上让学生了解面向对象才举的例子,并不一定非得那样做
#1
一般在有总--分或粗--精结构的时候派生新类。
比如我们需要矩形类、椭圆类、多边形类
那么就新建一个面类,它有:名称,类型,填充颜色等公共属性,和(可重载的)绘图等公共方法
然后再派生出矩形类、椭圆类、多边形类
你可能问为什么不直接建矩形类、椭圆类、多边形类呢?
首先,假如我们要引入图层,这就涉及到了图层的上移下移,在这种情况下,我们希望将所有元素存储在一个数组(容器)里,上面的派生类就有了独特的优势
然后,假设这时我们需要加入一个圆形类,我们是不是要重新写一个类呢?只要从椭圆类里派生就可以了。
最后,使用了继承,能够使程序的结构条理清楚,可读性强,可扩展性强。
我也学习VC不久,上面是一点体会,不要见笑~
比如我们需要矩形类、椭圆类、多边形类
那么就新建一个面类,它有:名称,类型,填充颜色等公共属性,和(可重载的)绘图等公共方法
然后再派生出矩形类、椭圆类、多边形类
你可能问为什么不直接建矩形类、椭圆类、多边形类呢?
首先,假如我们要引入图层,这就涉及到了图层的上移下移,在这种情况下,我们希望将所有元素存储在一个数组(容器)里,上面的派生类就有了独特的优势
然后,假设这时我们需要加入一个圆形类,我们是不是要重新写一个类呢?只要从椭圆类里派生就可以了。
最后,使用了继承,能够使程序的结构条理清楚,可读性强,可扩展性强。
我也学习VC不久,上面是一点体会,不要见笑~
#2
当你需要在原有类的基础上进行功能扩展的时候
#3
当你发现原有类的功能不够多需要在此基础上添加功能时时,就需要派生出新类了。
#4
在父类的基础上进行细化、特例化。例如从human中派生出man和woman,后者是前者的特例,对前者进行细化,实现自己的个性功能
#5
难道楼主没学过面向对象?
#6
这个有规律吗?当你需要的方法没有时您就可以派生自己的类了
#7
编你的程序必定要派生类,改造类实现你设定的功能
书上例子一样派生新类,你可能没注意
书上例子一样派生新类,你可能没注意
#8
任何时候!
只要你觉得有需要,你就可以派生。
甚至,你觉得闲的无聊的时候,也可以派生一个子类,里面一行代码都没有,也是 OK 的。
关键是看你的功能,现有的类是不是能满足你的要求。如果能,那 OK,不用派生,
如果不能,选择一个你认为最接近的父类来派生。
只要你觉得有需要,你就可以派生。
甚至,你觉得闲的无聊的时候,也可以派生一个子类,里面一行代码都没有,也是 OK 的。
关键是看你的功能,现有的类是不是能满足你的要求。如果能,那 OK,不用派生,
如果不能,选择一个你认为最接近的父类来派生。
#9
我为什么不在父类添加新的成员函数以实现功能的扩展,而非要派生新类呢?
#10
首先,假如我们要引入图层,这就涉及到了图层的上移下移,在这种情况下,我们希望将所有元素存储在一个数组(容器)里,上面的派生类就有了独特的优势
这个解释说的很形象
这个解释说的很形象
#11
一般不要派生新类,对新手先把已有的类用好。等到那一天已有的类不能满足你的要求时,从一个基本可以使用的类,派生你的新类。
#12
已有功能不能满足你的需求 需要重新改写或派生存在的类 不过优先使用组合而不是继承
#13
能够不派生就不派生。
继承是毒药,万到不得已的时候不用。
组合好于继承
能够用结构搞定就别用类。
能够不用结构就不用结构,总之,奥卡姆剃刀法则
能够用10行代码搞定的事情别用50行去封装,就为了体现面向对象,设计模式,那不值得。适当的方法用在适当的地方。
1楼的例子是个坏的引导,很多例子都这么说,其实,java才这么做,因为java只有类操作能够实现,你用的是c,完成这样的任务灵活得多,不必非得派生一大堆类。
继承是毒药,万到不得已的时候不用。
组合好于继承
能够用结构搞定就别用类。
能够不用结构就不用结构,总之,奥卡姆剃刀法则
能够用10行代码搞定的事情别用50行去封装,就为了体现面向对象,设计模式,那不值得。适当的方法用在适当的地方。
1楼的例子是个坏的引导,很多例子都这么说,其实,java才这么做,因为java只有类操作能够实现,你用的是c,完成这样的任务灵活得多,不必非得派生一大堆类。
#14
同意6楼8楼的说法,要不要派生新类完全看你个人觉得是否需要,看你的编程习惯,另外13楼说得对,1楼的引导的确不好,那都是教科书上让学生了解面向对象才举的例子,并不一定非得那样做