создание интерфейсов?
А по мимо интерфейсов у нас ничего нет да ?
Абстрактные классы знаю еще, что еще содет входить в этот список?
Всё Классы это абстракция, интерфейсы это абстракция, полиморфизм, инкапсуляция и так далее по списку
идея ООП - абстрагироваться от специфических деталей к более общей (и простой) картинке
Абстракция очень размытое понятие. И каждый ее видит по своему. В плане ООП абстракцией можно считать твое видение какой класс надо сделать для сохранения состояния чего то там (допустим в игре есть объект светофор). Внутри же ты тоже можешь придумать такую абстракцию как цвет светофора и хранить не прям цвет (для этого надо было бы создать сначала класс-перечислитель разных цветов), а ты можешь к примеру, абстрактно решить, что 1 это красный, 2 это желтый, 3 это зеленый - и ты таким образом сам для себя реши сделать вот такую абстракцию цвета как числа. А уже выводить на экран в методе, допустим render() этот метод будет смотреть какое число и если 1, то рисовать светофор красным. То есть абстракция - это крайне размытое понятие и каждый решает сам. Но также, как ты правильно заметил, существует понятие и интерфейсов, это тоже своего рода абстракция, то есть ты абстрагируешься от конкретного класса, и допустим, твоя игра должна содержать светофор, но ты бы не хотел жестко прописывать конкретно светофор с лампочками, а прописываешь как член данных класса твоей игры "Странный перекресток" не конкретный экземпляр светофора, а интерфейс на него. То есть ты в это поле можешь положить любой экземпляр светофора, у которого есть методы управления этим светофором, то есть вместо обычного светофора ты можешь подменить и засунуть в игру светофор с музыкой или светофор с вылезающим из него гаишником или светофор с камерой. Внедряя интерфейс, ты тоже как бы внедряшь не конкретный тип, а абстракцию на него. Так что видишь, понятие абстаркция очень растяжимо.
Абстракция в ООП — это выделение общих характеристик объектов, их свойств и методов, при игнорировании деталей реализации. Самый первый ответ в гугле. Этого достаточно для ответа на данный вопрос. А интерфейсы это один из инструментов достижения абстракции, наравне с абстрактными классами в том числе virtual методами.
Обсуждают сегодня