Мне было интересно, можно ли присвоить значение по умолчанию переменной в дочернем классе, если она определена в родительском классе.
В качестве примера я возьму среду кемпинга (лучше не мог придумать).
У нас есть жилой класс (родитель). Жилье может быть палаточной площадкой, передвижным домом, шале и т. Д. Только на месте для палаток нет патио (по умолчанию). Другой может иметь или не иметь его, а также иметь некоторые особые характеристики, которых нет на месте для палаток (посуда, покрывала и т. Д.).
Теперь ... Я ленив и предпочитаю помещать переменную патио (логическое значение) в класс жилья, а затем объявить в классе палатки патио по умолчанию как ложь. Или мне следует создать переменную внутреннего дворика в каждом дочернем классе?
class Lodging{
String description
int capacity
Boolean patio
}
class Tent extends Lodging{
static mapping = {
patio defaultValue: false
}
}
Когда я создам новый экземпляр Tent, правила сопоставления будут соблюдаться? Или это выдаст мне ошибку, что он не распознает переменную?
Я ничего не пробовал, но это пришло мне в голову, и мне не удалось получить ответ из документа grails (или здесь). Надеюсь, мои объяснения и вопрос были понятны :)