vb.net - Using shadowed methods/fields in an overriden method -


suppose had following code:

class normalemployee      protected pay decimal;      protected shared basepay decimal = 300d      protected overridable sub updatepay()          pay = basepay + .....do something......      end sub end class  class seniornormalemployee   inherits normal employee     protected shared shadows basepay decimal = 500d;     protected overrides sub updatepay()          pay = basepay + .....do different....     end sub end class  function main() integer     dim newemployee normalemployee = new seniornormalemployee()     newemployee.calculatepay()     return 0 end function 

i know due polymorphism, calculatepay() base class called. question is: why calculatepay() use basepay base class , not derived class? object being stored inside base class "container", though uses derived classes version of method, when goes check basepay shouldn't @ base class's version?

furthermore, behavior same when calling shadowed methods overrides method? there way make field "overridable"?

thanks help!

the problem using shadows keyword makes code use varible of base class, when reference base class. since used polymorphyism , newemployee defined normalemployee, basepay 1 of base class. more information, check here.


Comments

Popular posts from this blog

node.js - Mongoose: Cast to ObjectId failed for value on newly created object after setting the value -

[C++][SFML 2.2] Strange Performance Issues - Moving Mouse Lowers CPU Usage -

ios - Possible to get UIButton sizeThatFits to work? -