Object Class's protected method MemberWiseClon

2019-08-17 19:16发布

问题:

This might be a dumb question, but I don't get it:

I have a class called Card. I want to do a shallow clone using MemberWiseClone(). In Theory Card inherits from Object. So it should be able to use MemberWiseClone(), even if MWC() is protected ??

Am I missing/forgetting something?

回答1:

Card can use it.

class Card
{
   public Card Clone()
   {
      return (Card)MemberwiseClone();
   }
}


回答2:

You can only call a protected method on an object of the (compile-time) type of the class that your code is in.

Therefore, any particular class can only call MemberwiseClone on an instance of that class.
Since your class isn't Card (and doesn't inherit Card), you can't call MemberwiseClone on a Card instance.