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
Post a Comment