Наследование класса C # - PullRequest
       32

Наследование класса C #

7 голосов
/ 22 февраля 2010

привет. у меня есть следующий класс:

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 < unitLength; i++)
        {
            shipUnit[i] = new ShipUnit();
        }
    }
}

Я хотел бы унаследовать этот класс следующим образом:

public class ShipPlacementArray : Ship
{

}

это имеет смысл.

я хотел бы знать, как удалить некоторые функции базового класса?

например:

    public ShipUnit[] shipUnit { get; set; } // from base class

Мне бы хотелось, чтобы это было:

    public ShipUnit[][] shipUnit { get; set; } // in the derived class

У меня вопрос, как мне реализовать код, который полностью скрывает базовый класс shipUnit?

в противном случае я получу две реализации shipUnit в производном классе.

спасибо за ваше время.

ShipPlacementArray работает только с одним кораблем. но массив отражает направления, в которых можно разместить корабль.

Ответы [ 11 ]

0 голосов
/ 22 февраля 2010

вы можете использовать «новый» оператор. как в

public new ShipUnit[][] shipUnit { get; set; } // in the derived class
...