У меня есть интерфейс BaseModel
public interface BaseModel
{
String toString();
}
и абстрактный класс BaseData
public abstract class BaseData
{
public abstract String toString();
}
Я хочу, чтобы мои классы моделей переопределяли метод toString()
.Для этого я попробовал следующие способы, по одному, но не вместе:
Заставить все мои классы модели реализовать interface BaseModel
Заставьте все мои классы модели реализовать abstract class BaseData
В первом случае я не получаю ошибку компиляции, если не переопределить метод toString()
в моем классе модели.Я предполагаю, что он рассматривает метод Object.toString()
как допустимую реализацию.
Но во втором случае, если я не переопределю метод toString()
, я получаю ошибку компиляции:
Тип Title
должен реализовывать унаследованный абстрактный метод BaseData.toString()
, где Title
- один из классов моей модели, который расширяет BaseData
, но не переопределяет toString()
.
Почему расхождение?
Заранее спасибо.