Урок Java 378: Best practice 14: Чем интерфейсы лучше абстрактных классов
Чем интерфейс отличается от абстрактного класса?
Коротко: Подробно с примерами: Мы уже узнали, что абстрактный класс может хранить в себе атрибуты и методы, а значит он содержит в себе и состояние, и поведение. Интерфейс хранит в себе методы и описывает только поведение. Разберем более подробно на старом добром примере. У нас есть абстрактный класс Person и от него наследуются 3 класса - Маг, Воин и Охотник. Сделать наследование было логичным решением, чтобы не дублироваться в написании кода, у каждого из персонажей есть параметры здоровья и защиты, а так же каждый владеет методами боевого клича и контратаки...
Java. Чем абстрактный класс отличается от интерфейса? В каких случаях следует использовать абстрактный класс, а в каких интерфейс?
Абстрактный класс и интерфейс - это два сходных, но в то же время разных понятия в объектно-ориентированном программировании. Абстрактный класс - это класс, который не может быть создан напрямую, а может содержать в себе как конкретные, так и абстрактные методы. Абстрактные методы в абстрактном классе обязательно должны быть переопределены во всех его потомках. Интерфейс - это набор абстрактных методов без реализации, который может быть реализован любым классом. Интерфейс позволяет определить структуру, которую должен реализовать класс...