一般我们指的多态性是指“运行时的多态性”,也就是在程序运行时,系统根据不同的对象确定调用对象所属类的相应方法的能力。
示例
运行结果是:
我们可以看到,derivedClass 与 baseClass 类型不同,但是指向的都是 new DerivedClass():
从这里我们可以看出重写与隐藏的区别了。
再看一道多态的题:
大家可以猜一下结果是多少呢?
bb?dbb?dbdb?
结果是 dbdb。也就是说 base. 的时候,调用的是 base 的,但 this. 的时候并不是 this 的,而是根据多态规则是基类就是基类,是派生类就是派生类。