2011-gre-cs-practice-book.pdf/Q52 — различия между версиями
Материал из DISCOPAL
(→Объяснение) |
StasFomin (обсуждение | вклад) |
||
(не показано 5 промежуточных версий 1 участника) | |||
Строка 5: | Строка 5: | ||
=== Ответы === | === Ответы === | ||
− | * Правильный вариант: | + | * Правильный вариант: Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип. |
− | * | + | * Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип. |
− | * | + | * Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип. |
− | * | + | * Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип. |
− | * | + | * Экземпляры подтипов и супертипов могут использоваться взаимозаменяемо. |
=== Объяснение === | === Объяснение === | ||
{{cstest-source|2011-gre-cs-practice-book.pdf|39|52}} | {{cstest-source|2011-gre-cs-practice-book.pdf|39|52}} | ||
− | Фактически вопрос касается приниципа подстановки Лисков [https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8_%D0%9B%D0%B8%D1%81%D0%BA%D0%BE%D0%B2]. | + | Фактически вопрос касается приниципа подстановки Лисков [https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8_%D0%9B%D0%B8%D1%81%D0%BA%D0%BE%D0%B2]. |
+ | Подтип как минимум должен поддерживать все операции супертипа, чтобы его можно было безопасно подставлять на место супертипа, поэтому правильный вариант — «Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип». | ||
− | + | {{question-ok|[[Участник:StasFomin|StasFomin]] 10:57, 9 января 2025 (UTC)}} | |
− | + | [[Категория:OOP]] | |
− | + | ||
− | + |
Текущая версия на 10:57, 9 января 2025
Вопрос: Q52-08c765
Принцип подстановки подтипов описывает, когда один тип может быть заменён другим. Какое из следующих утверждений является верным?
Ответы
- Правильный вариант: Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
- Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
- Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
- Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
- Экземпляры подтипов и супертипов могут использоваться взаимозаменяемо.
Объяснение
Исходники — вопрос 52 на 39 странице книги «2011-gre-cs-practice-book.pdf»
Фактически вопрос касается приниципа подстановки Лисков [1]. Подтип как минимум должен поддерживать все операции супертипа, чтобы его можно было безопасно подставлять на место супертипа, поэтому правильный вариант — «Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип».