title: How do I create a method or property in C# that is public, yet not inheritable?
body: <p>Here is an example. I have two classes, one inherited, and both have a function with the same name, but different arguments:</p>
  
  <pre><code>public class MyClass
  {
      //public class members
  
      public MyClass()
      {
          //constructor code
      }
  
      public void Copy(MyClass classToCopy)
      {
          //copy code
      } 
  }
  
  public class InheritedClass : MyClass
  {
      //public class members
  
      public InheritedClass():base()
      {
          //constructor code
      }
  
      public void Copy(InheritedClass inheritedClassToCopy)
      {
          //copy code
      } 
  }
  </code></pre>
  
  <p>My question is how do I make the base class' copy method (MyClass.Copy) non-inheritable or non-visible in InheritedClass? I don't want to be able to do this:</p>
  
  <pre><code>MyClass a;
  InheritedClass b;
  b.Copy(a);
  </code></pre>
  
  <p>Does this make sense, or should I keep this functionality in there? Can what I'm asking even be done?</p>