Для следующего сегмента кода Java метод «run» встречается четыре раза.Я довольно смущен отношениями этих четырех случаев «бега».Оригинальный код довольно длинный, я просто оставляю часть, связанную с моим вопросом.
1. public final class Job extends AbstractJob {
2. private Job( ) {
3. }
4. public static void main(String[] args) throws Exception {
5. new Job( ).run(new Path("testdata"), output, 10 );
6. }
7.
8. @Override
9. public int run(String[] args) throws IOException, ClassNotFoundException, InterruptedException {
10. run(input, output, alpha0);
11. return 0;
12. }
13. public void run(Path input, Path output, double alpha0)
14. throws IOException, ClassNotFoundException, InterruptedException {
15. ClusterDriver.run(directoryInput, output, alpha0);
16. }
17. }
Можно ли понять последовательность вызова этого сегмента кода следующим образом:
Сначала вызывается метод run в строке 5.Из-за его особой установки параметров, 3 параметров, компилятор автоматически использует метод запуска, определенный в строке 13 (если у нас есть только один параметр в строке 5, то компилятор будет использовать метод запуска, определенный в строке 9.
Для метода run, определенного в строке 9, он вызовет метод run в строке 10, что по сути является методом run, определенным в строке 13.
Правильно ли мое понимание?