title: C# Class Inheritance
body: <p>greetings. i have the following class:</p>
  
  <pre><code>public class Ship
  {
      public enum ValidShips
      {
          Minesweeper,
          Cruiser,
          Destroyer,
          Submarine,
          AircraftCarrier
      }
  
      public enum ShipOrientation
      {
          North,
          East,
          South,
          West
      }
  
      public enum ShipStatus
      {
          Floating,
          Destroyed
      }
  
      public ValidShips shipType { get; set; }
  
      public ShipUnit[] shipUnit { get; set; }
  
      public ShipOrientation shipOrientation { get; set; }
  
      public ShipStatus shipStatus { get; set; }
  
      public Ship(ValidShips ShipType, int unitLength)
      {
          shipStatus = ShipStatus.Floating;
  
          shipType = ShipType;
  
          shipUnit = new ShipUnit[unitLength];
  
          for (int i = 0; i &lt; unitLength; i++)
          {
              shipUnit[i] = new ShipUnit();
          }
      }
  }
  </code></pre>
  
  <p>i would like to inherit this class like so:</p>
  
  <pre><code>public class ShipPlacementArray : Ship
  {
  
  }
  </code></pre>
  
  <p>this makes sense.</p>
  
  <p>what i would like to know is how do i remove certain functionality of the base class?</p>
  
  <p>for example:</p>
  
  <pre><code>    public ShipUnit[] shipUnit { get; set; } // from base class
  </code></pre>
  
  <p>i would like it to be:</p>
  
  <pre><code>    public ShipUnit[][] shipUnit { get; set; } // in the derived class
  </code></pre>
  
  <p>my question is how do i implement the code that hides the base class shipUnit completely?</p>
  
  <p>otherwise i will end up with two shipUnit implementation in the derived class.</p>
  
  <p>thank you for your time.</p>
  
  <p>ShipPlacementArray deals with only one ship. but the array reflects the directions the ship can be placed at.</p>