Методы суперклассов для подклассов Java - PullRequest
0 голосов
/ 05 февраля 2019

Нужно ли подклассу переписывать каждый метод суперкласса, или это не обязательно, но подкласс может переопределять некоторые методы суперкласса.Я немного смущен.

Ответы [ 2 ]

0 голосов
/ 05 февраля 2019

Если подкласс хочет ввести уникальное поведение для вызова метода, который он унаследовал, то этот метод должен быть переопределен.

Наиболее распространенные случаи для этого: toString,equals и hashCode имеют право на переопределение для всех ваших пользовательских классов, учитывая, что ваш пользовательский класс не хочет использовать Object#toString, Object#equals или Object#hashCode, которые все "бесполезны" дляВаши пользовательские реализации.

Если подкласс не не желает вводить уникальное поведение для вызова метода, который он унаследовал, то в этом нет необходимости.Вместо этого вы можете полагаться на поведение родительского класса.

Если ваш родительский класс abstract, то у вас нет выбора , но для реализации методов, которые родительский класс решил не реализовывать.

Если вы реализуете интерфейс, применяется тот же принцип, что и абстрактные классы - поскольку интерфейс сам ничего не реализует, вы должны реализовать методы, которые предписывает интерфейс.

0 голосов
/ 05 февраля 2019

Подклассы не обязаны переопределять любые родительские методы, даже если они могут.Единственный способ заставить дочерний класс переопределить метод - сделать этот метод абстрактным (и родительский класс также должен быть абстрактным).

...