override实际上是多态实现的基础,对么?
(1)多态的概念
这里的“多态”指的是VB6文档里提到的那种多态,就是多多变态的意思,呵呵,开个玩笑。就是,汗,好像还真不是一句话能说清楚的。上代码吧:
Dim Dog As clsIDog
For Each Dog In Kennel
Dog.Eat
Next Dog
你看,我说的就是这种多态。假设kennel里有很多种狗,有藏獒也有京巴,它们吃东西的具体形式不大一样。但是我用他们的父类dog对象,就可以在程序运行期间动态地调用子类的方法。总之,这里说的多态,就是父类调用子类的方法,就是后期绑定。
(2)override的概念
override一般翻译成覆盖或者重写。注意我说的
不是overload啊,那个是重载,指的是相同的函数名,可以有不同的函数签名(就是参数列表可以不同)。
override指的是子类继承父类的时候,子类重新实现父类的同名方法(参数列表也要完全相同)。
(3)要请教的问题
在VB6里实现上面的这种多态,是用implements。然后在具体类里实现接口类里的方法。这样的话,是不是可以说override是实现多态的基础呢?甚至继承也是。
没有子类继承接口类,就没办法实现多态,对吧?在此基础上,没有override也没办法实现多态,对吧?
可是的话,为什么我没看到有别人这么说呢?还是我对override这个概念理解的不对?