Класс Object
Этот класс — корень иерархии наследования.
Любой класс, который вы заводите, либо наследуется от указанного вами класса: class A extends B
, либо наследуется от Object
: class A
эквивалентна class A extends Object
. Получается, что любой класс напрямую или косвенно наследует Object
.
class A {}
class B extends A {}
class C extends B {}
В этом случае, Object <- A <- B <- C
.
Зачем? Во-первых, получается, что всё является объектом (кроме значений базовых типов (8 шт), например, int
).
Object o1 = "abc"; // String
Object o2 = new Student("", "");
Object o3 = new Scanner(...);
Object o4 = new int[]{10, 20, 30};
Object o5 = 42; //42 преобразуется в Integer (boxing)
private void fun(Object o) {
// в эту функцию можно передать всё что угодно
}
Второе, зачем нужен Object. В этом классе определён ряд методов, получается, что эти методы есть у абсолютно всех объектов. Перейдем к коду, чтобы посмотреть на эти методы: