КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Методы final
Абстрактные методы Объявляются при помощи ключевого слова abstract:
abstract void my_f1();
Абстрактный метод не имеет тела, нельзя даже ставить { }. Эти методы удобно использовать, если необходимо, чтобы метод присутствовал во всех классах потомках, но во всех классах имел разную реализацию.
Метод “зарплата” абстрактный. При создании производных классов этот метод переопределяется так, как нужно в каждом из них. Пример:
abstract class worker { protected int Age; public String Name; abstract public void setSalary(int newSalary); } class boss extends worker { public void setSalary(int newSalary) { if (newSalary >=0) Salary = newSalary; else Salary = 3000; } }
В классе-потомке абстрактный метод имеет свою реализацию. Если мы объявили какой-то метод класса абстрактным, то и весь класс нужно объявить абстрактным. В абстрактных классах нельзя создавать экземпляры абстрактного класса, но можно объявить объектную ссылку: worker w. Экземпляр:
worker w = new worker(); //нельзя создавать
Абстрактный класс может содержать и неабстрактные методы.
Эти методы объявляются как окончательные, не подлежащие дальнейшему переопределению при наследовании.
final void my_fun() {…}
Ключевое слово final нельзя использовать для абстрактных методов. Параметры, принимаемые методом final, могут передаваться как по значению (для базовых простых предопределённых типов данных), так и по ссылке (если в качестве параметра указывается объект).
Дата добавления: 2014-12-25; Просмотров: 426; Нарушение авторских прав?; Мы поможем в написании вашей работы! |