Tuesday, March 20, 2007

Java Abstract Vs. C++ Virtual

C++ Virtual 赋予Cplusplus语言以多态的能力,其控制的粒度更加细密,父类可以提供该vitual function的默认实现,而且对于其子类是否override该virtual function也不是强制的。但是由于C++允许多重继承,所以当某一个类的父类们同时virtual同一个function,而该类没有提供override的实现,那么用指向子类的指针来调用该function,便会出现runtime error.

C++ Pure Virtual = Java Abstract ; 其子类必须给于明确的实现。多重继承中,多重父类是可以纯虚化用一个函数的。

No comments: