Класс 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. В этом классе определён ряд методов, получается, что эти методы есть у абсолютно всех объектов. Перейдем к коду, чтобы посмотреть на эти методы: