It is best to use the most specific class possible in your declaration,
because it means less converting will be involved, as well as leaving less
room for error. In your case, it sounds like this would be the Staff class.
However, for what you are doing I might suggest adding a property to the
Staff class (maybe named "Position" or "Department" or "Title"), and then in
the Administrator and Accounts classes, either set that property in the
constructor or override it so that it returns the desired value. Hopefully
this helps.
--
Nathan Sokalski
http://www.nathansokalski.com/
"ThatsIT.net.au" <me@work> wrote in message
news:30F1DCEC-7FF7-45A1-A912-...
>I have some inheritance in my classes
> I have Administrator class and a Accounts class then inherit from the
> Staff class, which in turn inherits from the Person class
>
> I have a function that finds out if the user is a administrator or in
> accounts and returns the correct object, I do not know what that will be
> so I can not declare the object accounts or administrator, I have to
> declare it as a Person or a Staff object like
>
> dim oUser as Person = getUser(userId)
> or
> dim oUser as Staff = getUser(userId)
>
> either will work of cause, but I wondering if their was a cost, and if you
> should always take the base class or as high up in inheritance as you can.
>
> Thanks