- 1
http://www.quizful.net/interview/java/k4gCs7Qmf8YF
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+133
http://www.quizful.net/interview/java/k4gCs7Qmf8YF
Мне кажется, или кто то накурился?
если я не прав - обьяните(
какая разница, как обращаться, эффект будет один и то же. Только если не перегрузить свойство
А полиморфным... можно конечно, но, имхо, если поле нуждается в особом обращении в каждом классе - нужно делать явные полиморфные методы Get и Set.
Ну т.е. поля физически нет. Геттер считает его значение на лету. Сеттер, если есть, пишет куда-нибудь в другое поле.
Пример:
Эээ, а геттер и сеттер это что? :)
UPD: А тьфу, вы же с шарпика пришли. Так вот, в жабе, в отличие от шарпа, нет свойств. И геттер и сеттер это самые обычные методы, ничем не отличающиеся от других.
private int _ineg;
public int Ineg
{
get { return _ineg+5; }
set { _ineg = value; }
}
var a = Ineg - вызывается геттер
Ineg = 10 - вызывается сеттер
На этом - все
Вот такое автоматическое свойство можно создать у предка, а после перегрузить. Кода сэкономится пару строк. (или как-то так). Тогда поле private int _foo; описывать явно не нужно, но оно создастся автоматически. А если всё же описать такое поле явно, то будут коры с конфликтами имён. Это ж шарп.
Челу стоит дополнить свой ответ кодом сабкласса, в котором перегружены геттер и сеттер, тогда будет более-менее верно ;)