Я использую библиотеку, где абстрактный класс переопределяет конкретный метод, унаследованный от Object
с абстрактным способом:Почему абстрактный класс заставляет конкретный метод переопределяться?
public abstract class A {
@Override
public abstract boolean equals(Object obj);
}
Чтобы расширить этот класс, я должен реализовать equals
метод:
public class B extends A {
@Override
public boolean equals(Object obj) {
return obj != null && obj.getClass() == B.class;
}
}
Почему абстрактный метод (A::equals
) переопределяет конкретный метод (Object::equals
)? Я не вижу цели этого.
Здесь обратное - базовый класс имеет абстрактный метод, а неабстрактный производный класс имеет не абстрактный метод, который переопределяет метод базового класса. – sharptooth
@sharptooth Мой вопрос был не очень ясен. Я говорю о 'A :: equals' overriding' Object :: equals' – gontard
Думаю, вы должны прямо сказать это в вопросе. Поскольку вы только представили два своих класса, я был уверен, что вопрос касается только их. – sharptooth