У меня есть класс с именем Ship
и класс с именем Lifeboat
Спасательная шлюпка наследуется от Корабля.
Ship содержит метод с именем Validate()
, который вызывается перед сохранением, и имеет абстрактный метод с именем FurtherValidate()
, который вызывается из Validate. Причина этого в том, что когда вы вызываете validate на базе, он также проверяет класс, который наследует. Итак, у нас есть
public class Ship
public bool Validate()
{
//validate properties only found on a ship
FurtherValidate();
}
public abstract bool FurtherValidate();
То есть Lifeboat
имеет
public override bool FurtherValidate()
{
//validate properties only found on a lifeboat
}
Это означает, что любой, внедряющий Ship
, также должен предоставить свою собственную проверку для своего класса, и он гарантированно будет вызван на сохранение как базовый корабль. Вызывается Validate()
, который в свою очередь вызывает унаследованную проверку.
Как мы можем поработать с этим, чтобы мы по-прежнему заставляли наследуемые классы реализовывать FurtherValidate()
, но программист никогда не сможет вызвать FurtherValidate()
. В настоящее время вы можете позвонить Lifeboat.FurtherValidate()
, и я хочу как-то предотвратить это.