我还是要主动物的例子。
dog.eat
cat.eat
如果现在你写一个函数LetAnimalEat(An :Animal)
如果父类不能赋子类的值,那你就不得不写两个函数了。
LetDogEat(d :Dog)
LetCatEat(c: Cat)
当然这是简单说说。
dog.eat
cat.eat
如果现在你写一个函数LetAnimalEat(An :Animal)
如果父类不能赋子类的值,那你就不得不写两个函数了。
LetDogEat(d :Dog)
LetCatEat(c: Cat)
当然这是简单说说。
解决方案 »
- 求delphi7教程
- fastreport 多列重复相同内容
- 昆明delphi情况如何???
- 求一个工资管理规则的算法
- *****SOS******,要死人了!!!!!!!
- 高分求教Win3.11workgroup的问题。网络老手请进,100分坚决俸上。
- 急!!!在线等!!!关于导出表和安装程序的问题。答对了马上给300分!!!
- 请问哪个可以告诉我一个DELPHI的EXE制作软件的地址给我。
- 如何处理录音时回调函数中的MM_WIM_DATA消息,将缓冲区数据写入.wav文件
- 谁有ReportBuilder 6 的汉化资源包
- 我这句话怎么了?icehill~~~~~~~~~~
- 该如何调用DLL,很简单,请知道
自子类向上轉型至子类 可能會「窄化」子类其介面,但無論如何
不會窄於父类的介面。
子类是“男人”、“女人”,一样有头、手、脚等属性,有走路的动作。但多出了性别特征,第一性征就不说了,如男人有胡须;而女人可以怀孕,生孩子。你可以说“男人”就“人”,“女人”是“人”,所以可以用“人”这种类型的变量来“容纳”一个“男人”或“女人”类型的实例。一个“男人”类型的变量赋给“人”类型的变量。H为一个“人”类型的变量,它可以有头、手、脚等属性,有走路的动作。如果H实际是“女人”或“男人”的实例,这也没有错。M是一个“女人”类型的变量,但它是“人”的实例,相当于一个“人”穿了女人的衣服,但它不一定是女人,当你调用它的怀孕、生孩子的方法时,它就会露馅了。总之,子类是父类的扩展,父类所拥有的,它都拥有(从外界来看,也就是public接口),所以你可以看一个子类实例看成是一个父类的。相反就不一定行。