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), если нет чёткого отношения «является».