У меня есть 2 классов:Вызов базового класса непосредственно в аргумент конструктора производного класса
public class LineGeometry
{
public LineGeometry(Point startPoint, Vector direction)
{
this.startPoint = startPoint; this.direction = direction;
}
}
public class LineSegmentGeometry : LineGeometry
{
Point endPoint;
public LineSegmentGeometry(Point startPoint, Point endPoint, Vector direction) : base (startPoint, direction)
{
this.startPoint = startPoint; this.direction = direction; this.endPoint = endPoint;
}
}
По существу, я надеюсь, чтобы добавить еще один конструктор LineSegmentGeometry
, что идет что-то вроде этого:
LineSegmentGeometry(Point endPoint, LineGeometry l)
{
this.startPoint = l.startPoint;
this.direction = l.direction;
this.endPoint = endPoint;
}
Поскольку по существу LineSegmentGeometry
точно такой же, как и его базовый класс, за исключением 1 дополнительной переменной.
Однако компилятор выдает сообщение об ошибке, что базовый класс недоступен из-за его уровня защиты. Является ли этот способ объявления конструктора хорошей идеей, и если все в порядке, как мне решить проблему с ошибкой?
В стороне, я бы * сильно * рекомендую придерживаться одного утверждения в строке. Это значительно облегчает чтение. Кроме того, в настоящее время ваши объявления классов недействительны (вы не хотите, чтобы эти '()'), и ваш класс 'LineSegmentGeometry' не выводился из' LineGeometry'. –
Спасибо, что отредактировал для ошибки –