В случае сложной иерархии наследования, например, по линии,
A имеет имя функции whoOverrideMeLatest ();
A {Interface}
|
B {Interface}
|
C {abstract class} {implemented whoOverrideMeLatest()}
|
D {abstract class extending C and implementing some random 5 interfaces} {overrides whoOverrideMeLatest()}
|
E {concrete class}
|
F {concrete class}
|
G {G is abstract class which extends F and implements 10 other interfaces}
|
H {concrete class and overrides whoOverrideMeLatest()}
|
I {abstract class extending H and implementing 3 interfaces}
|
J {concrete class}
Предположим, если я создаю экземпляр J следующим образом,
A a = new J ();
Как видите, последнее переопределение функции whoOverrideMeLatest () произошло в классе "H".Поскольку на каждом уровне происходит слишком много реализации классов, абстрактных классов и интерфейсов, вы можете понять сложность и объем перегрузки методов, а также количество функций, которые несет каждый класс.Делать это вручную и выяснить это всегда сложно: (
Вопрос,
- Есть ли что-нибудь в Java, если в качестве входных данных указан объект и функция, и это говорит мне, какой класс переопределенпоследняя функция в иерархии.
Например,
For => A a = new J (); мне нужно получить класс "H" в качестве вывода
For => A a = new F (); мне нужно получить класс "D" в качестве вывода