Ответ
Класс java.lang.Object является корнем иерархии классов в Java, что делает его фундаментальным воплощением принципов объектно-ориентированного программирования.
Принципы ООП, реализуемые через Object:
- Наследование (Inheritance): Все классы в Java неявно наследуются от
Object. Это обеспечивает единый базовый контракт. - Полиморфизм (Polymorphism): Ключевые методы
Object(например,equals(),hashCode(),toString()) предназначены для переопределения в дочерних классах, что позволяет изменять их поведение. - Абстракция (Abstraction):
Objectпредоставляет общий интерфейс для работы с любым объектом (например, через ссылку типаObject). - Инкапсуляция (Encapsulation):
Objectинкапсулирует базовую логику работы с объектами (синхронизация черезwait()/notify(), получение класса черезgetClass()).
Практический пример переопределения:
public class Person {
private String name;
private int id;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return id == person.id; // Сравнение по бизнес-логике (id)
}
@Override
public int hashCode() {
return Objects.hash(id); // Согласованность с equals()
}
}
Best Practice: Всегда переопределяйте equals() и hashCode() согласованно, если планируете использовать объекты в коллекциях на основе хэша (HashMap, HashSet).