[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-oop-chto-podrazumevayut-v-plane-printsipov-oop-vyrazheniya-yavlyaetsya-i-imeet":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":18,"progress":19,"seo":20},10,"chto-podrazumevayut-v-plane-printsipov-oop-vyrazheniya-yavlyaetsya-i-imeet",1,"oop","ООП","🔷","Что подразумевают в плане принципов ООП выражения является и имеет?","**«Является»** (*is-a*) подразумевает **наследование**:\n\n```java\nclass Animal { }\nclass Dog extends Animal { } \u002F\u002F Dog является Animal\n```\n\n**«Имеет»** (*has-a*) подразумевает **ассоциацию** (агрегацию или композицию):\n\n```java\nclass Engine { }\nclass Car {\n    private Engine engine; \u002F\u002F Car имеет Engine\n}\n```\n\nПри проектировании предпочтительнее использовать композицию вместо наследования (*favor composition over inheritance*), если нет чёткого отношения «является».","","junior",[15,7,16,17],"наследование","композиция","ассоциация",[],null,{"title":21,"description":22,"ogTitle":23,"ogDescription":24,"keywords":25,"schemaAnswer":30,"featuredSnippetReady":31},"«Является» (is-a) и «имеет» (has-a) в ООП — Gymterview","«Является» — наследование (is-a): Dog extends Animal. «Имеет» — ассоциация (has-a): Car имеет Engine. Композиция vs наследование.","is-a и has-a — наследование vs композиция в ООП","«Является» = наследование (Dog extends Animal), «имеет» = ассоциация (Car имеет Engine). Когда предпочесть композицию наследованию.",[26,27,28,29],"является и имеет ООП","is-a has-a Java","наследование vs композиция","ассоциация агрегация композиция","«Является» (is-a) подразумевает наследование. Если класс B «является» классом A, то B наследует A. «Имеет» (has-a) подразумевает ассоциацию (агрегацию или композицию). Если класс A «имеет» объект B, то B является полем A.",true]