Можно ли в классе-потомке переопределить метод с новыми параметрами? Добрый день!
Пытаюсь разобраться с тонкостями ООП. Простой пример.
Есть абстрактный класс Слой:public abstract class Layer: ICreatable
{
float[,] Heights { get; set; }
public abstract void Create();
}
Интерфейс, который он реализует, тоже прост:interface ICreatable
{
void Create();
}
Я хочу создать класс-потомок, который будет являться определенным типом слоя. Не понимаю, можно ли в нем реализацию метода Create() переписать как метод Create(int someParameter)? Если нет, то как лучше реализовать мою задумку. Я хочу, чтобы каждый тип слоя (класс-потомок) был ICreatable.
Чтобы было что-то типа такого:public class PerlinNoiseLayer : Layer
{
private float[,] _heights;
public override void Create(int resolution)
{
...
}
}

21 Авг 2019 в 06:59
182 +1
0
Ответы
1

Нет, в классе-потомке нельзя просто так переопределить метод с новыми параметрами. Это нарушит принцип подстановки Лисков, который является одним из принципов SOLID.

Однако, вы можете добавить новый метод с новыми параметрами в класс-потомок, сохраняя при этом реализацию метода Create() из родительского класса. Например:public class PerlinNoiseLayer : Layer
{
private float[,] _heights;

public void Create(int resolution)
{
...
}
public override void Create()
{
// вызов метода Create() из родительского класса с какими-то параметрами по умолчанию
}

}

Таким образом, у вас будет метод Create() с новыми параметрами и метод Create() из родительского класса. Вы сможете вызывать их в зависимости от вашей потребности.

20 Апр в 13:10
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир