Gymterview
junior

Что подразумевают в плане принципов ООП выражения является и имеет?

«Является» (is-a) подразумевает наследование:

Пример
class Animal { }
class Dog extends Animal { } // Dog является Animal

«Имеет» (has-a) подразумевает ассоциацию (агрегацию или композицию):

Пример
class Engine { }
class Car {
    private Engine engine; // Car имеет Engine
}

При проектировании предпочтительнее использовать композицию вместо наследования (favor composition over inheritance), если нет чёткого отношения «является».