in the base class, there is a virtual function
when the we want to override the virtual function in derived class
need we add a 'virtual' before the definition of overriding function?
some article said if the virtual function is a pure one, you should
add a 'virtual' before all the overriding functions in the derived classes