回 帖 发 新 帖 刷新版面

主题:一个要出人命的问题,我好菜啊

本人刚刚学习C++语言,有些问题很疑惑,请各位前辈指点一二,小生在此有礼了


父类 A 中包括 方法A1 方法A2
子类 B 中包括 方法B1


我在这里要用到 A类中的 A1 和 B类中的 B1  所以出现了继承!!!
(即class B:A )

可是问题出现了 那 A 类中的方法 A2 怎么办 ?
A2是我不想用的方法 在生成 "实例" (即创建对象) 时是否也被创建

问:
    (1) 如果被创建不是浪费资源么,因为 A类中的A2是我用不到的方法
        如果要是A2不被创建那么是怎么回事,那A2有在哪里
        (希望您能给我由 "浅" 到 "深" 的讲解一下多谢了,恩人啊)
        

回复列表 (共2个回复)

沙发

首先纠正一下:应该是class B:A
B创建时A中所有的域和方法都会创建,这个没法避免
从oo的角度来说A的所有方法对B都是有用的,比如"车(A)"能"倒退",那么"宝马(B)"也应该能"倒退","宝马(B)"的方法应该比"车(A)"的方法多,一般不存在抽象概念"车(A)"能做而"宝马(B)"不能做的事情.
父类的方法而子类不需要,一般是由于父类不够抽象产生的.当然有时也存在特殊情况,比如父类"人"都能"走路",但是一些"残疾人"却不能,那时具体对待.

板凳

精辟的解释啊
特别是最后两句。给我不少感触(声明:我不是残疾啊)
建议加精!1

我来回复

您尚未登录,请登录后再回复。点此登录或注册