Для следующего кода:Java: Конвенция/практика для вызова методов родительского класса
`
Class A
{
method1();
method2();
}
Class B extends A
{
method1();
method3();
}`
В классе B, реализация method3 выглядит следующим образом:
method3()
{
this.method1(); // For calling method1 in class B
super.method1(); // For calling method1 in parent class A
// Following statements call method 2 in parent class
method2(); // 1 doesn't seem to be right practice
this.method2; // 2 is more readable in case method2 is overridden in this class
super.method2();// 3 improves readability IMO
}
Какой из 3 рекомендуется метод вызова метода2?
Вызов super.method() довольно редок, особенно если не вызывать из переопределения этого метода. Никто не ожидал этого, поэтому лучше всего этого избежать. Поэтому добавление 'this.' в вызов метода - это просто лишняя информация. –
Вы использовали бы только метод super.method(), если у вас есть переопределенный метод2() внутри класса B. –
Я понимаю, что как 1 & 2 приведет к «this.method2()», когда код скомпилирован, и был заинтересован в зная, какой из них является предпочтительным способом его вызова. Включение метода1(), я видел некоторые сообщения, которые сказали - «this.method1()» должен быть предпочтительным способом его вызова, чем «method1()» в качестве хорошей практики. –