Задать вопрос
Ответы пользователя по тегу ООП
  • Чем наследования (extends) отличается от создания новых экземпляров классов (new)?

    pazukdev
    @pazukdev
    Java Dev
    1. class Car - чертеж автомобиля.
    2. class Car1 extends Car - создание чертежа новой модели автомобиля (Car1) на основе чертежа старой (Car).
    3. new Car() - производство 1 шт. автомобиля Car согласно чертежу.
    Ответ написан
    Комментировать
  • В каком случае лучше использовать абстрактный класс, а в каком интерфейсы?

    pazukdev
    @pazukdev
    Java Dev
    Вопрос был бы острее, если бы спрашивали про полностью абстрактный класс vs интерфейс.
    Если не вдаваться в подробности, полностью абстрактный класс может иметь состояние, а интерфейс - нет. Отсюда вытекает использование: если у наследников должно быть общее описание состояния - использовать абстрактный класс, во всех других случаях - интерфейс.
    Ответ написан
    Комментировать
  • Отличия абстрактного класса от интерфейса?

    pazukdev
    @pazukdev
    Java Dev
    Вопрос был бы интереснее, если бы спрашивали про полностью абстрактный класс vs интерфейс.
    Если не вдаваться в подробности, полностью абстрактный класс может иметь состояние, а интерфейс - нет. Отсюда вытекает использование: если у наследников должно быть общее описание состояния - использовать абстрактный класс, во всех других случаях - интерфейс.
    Ответ написан
    Комментировать
  • Зачем нужно ООП?

    pazukdev
    @pazukdev
    Java Dev
    Как уже тут было сказано в комменте выше:
    с одной целью - снизить сложность сопровождения и развития большой кодовой базы

    Я бы добавил, что ООП пытается повысить "человекопонятность" кода за счет переноса свойств реального мира на процесс написания и структуру кода.
    Ответ написан
    Комментировать
  • Когда в коде следует использовать интерфейсы (Java)?

    pazukdev
    @pazukdev
    Java Dev
    1, Абстракция нужна везде, где будет проходить ось изменений системы. А интерфейс - основное средство достижения абстракции в Java. Из этого следует п.2.
    2. Всегда, когда нужна абстракция (за исключением случаев, когда абстракция должна обладать состоянием. В таком случае вместо интерфейса придется использовать абстрактный класс т.к. интерфейс не может обладать состоянием).
    Ответ написан
    Комментировать
  • В чем суть интерфейсов в программировании?

    pazukdev
    @pazukdev
    Java Dev
    1. Класс - это всегда интерфейс + реализация (хотя бы частичная).
    2. Интерфейс - это способ полностью отделить интерфейс от реализаци. Т.е. полностью абстрактный класс. Служит для описания котракта поведения класса для взаимодействия с внешним окружением.
    Ответ написан
    Комментировать
  • Совет по проектированию класса?

    pazukdev
    @pazukdev
    Java Dev
    По п. 1 Вашего вопроса.
    Если уверены, что через этот функционал (эту сущность) не будет проходить ось изменений, то пишите класс. Если нет - интерфейс. Или абстрактный класс, если эта сущность должна обладать каким-то state.
    Ответ написан
    Комментировать