Задать вопрос

Абстракция в JavaScript?

Добрый день.
Скоро будет собеседование на позицию Trainee / Junior JS developer и спрашивать будут про ООП. Первых три принципа понимаю:
  • Наследование - построено на прототипах - Пример
  • Инкапсуляция - это когда мы можем скрыть свойства или методы от доступа извне, сделав их локальными. - Пример
  • Полиморфизм - это когда подкласс класса может вызвать ту же самую обобщенную унаследованную функцию в своем собственном контексте. - Пример


А вот про абстракцию что то вообще ничего не пойму.
Можете на каком то понятном примере объяснить , что такое абстракция в ООП JavaScript'a ?
  • Вопрос задан
  • 19307 просмотров
Подписаться 16 Простой 6 комментариев
Ответ пользователя Timur Baiguzhaev К ответам на вопрос (2)
@TimurBaiguzhaev
Backend Golang Developer
Помните, как родители заставляли вас играть на фортепиано или учить стихи?.. Так вот, Абстрактные классы также как и многие родители вовсе и знать не знают зачем ребенку-потомку это будет нужно, и как он это будет использовать, но уверены, что так НАДО! Т.е. такие классы содержат абстрактные методы, которые являют собой объявление метода без самой реализации, как фантик без конфетки, тем самым обязывая потомка, этот метод реализовать. Как и в жизни, где родители нередко перекладывают на детей свои нереализованные мечты…

Вот в такой шутливо-серьезной форме, мы затронули тему абстрактных классов и семейных отношений, как способ понять… и то и другое?.. А если серьезно, то разумеется, в программировании не должно быть случайных методов, и любые методы и свойства являются частью продуманной иерархии классов, которая как генеалогическое дерево, может давать возможности расширять функционал от поколения к поколению. А абстрактные классы, и еще более абстрактные – интерфейсы ( interface — вообще не содержит реализаций ), помогают программисту не потерять, не забыть реализовать общие необходимые для всех потомков умения в жизни, без которых особь умрет, а с ней и приложение.


Источник : habrahabr.ru

Abstract classes in JavaScript
Ответ написан
Комментировать