Я новый ученик JAVA Language. В JAVA класс Object является корневым классом (или) верхним большинством суперкласса в иерархии классов (каждый класс является подклассом Object). Поэтому каждый класс, который мы создаем, имеет 11 методов (как указано в JAVA API) класса Object, и мы можем их использовать, например, метод toString()
.Как метод getName() используется в классе Object?
Но определение метода toString()
использует метод getName()
, который не определен в классе Объект. (Я знаю, что метод toString()
использует метод getName()
, потому что я использовал JD-GUI для просмотра исходного кода Object.class файла, установленного на моем компьютере.)
Если мы создадим файл Java
class test {
public static void main(String args[]) {
test t = new test();
System.out.println(t.getClass().getName());
/* Don't understand how I am able to use getName() method without extending any other
*class containing *getName() method.*/
}
}
Вышеприведенное дает «тест» как выход без ошибок.
К классу Object это класс корня, поэтому он не расширяет другие классы и не выполняет какую-либо работу, он должен определять свои собственные методы.
Мой вопрос: Как определить класс и классы объекта, которые мы можем использовать, без определения метода getName()
в своем классе?
Существуют ли какие-либо другие классы, кроме класса Object?
Как класс «Объект» может использовать методы класса «Класс» без наследования или создания объекта. – Sudheer
Посмотрите на свой код! Вы используете метод getClass(), который возвращает экземпляр класса. Просто как тот. – Dici
@Sudheer Не нужно наследовать их. Он получает экземпляр класса с помощью метода getClass, а затем он может вызывать любой доступный метод класса для этого экземпляра. – Eran