2011-gre-cs-practice-book.pdf/Q52 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
 
(не показана 1 промежуточная версия 1 участника)
Строка 5: Строка 5:
 
=== Ответы ===
 
=== Ответы ===
  
* Правильный вариант: (A) Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
+
* Правильный вариант: Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
* (B) Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
+
* Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
* (C) Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
+
* Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
* (D) Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
+
* Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
* (E) Экземпляры подтипов и супертипов могут использоваться взаимозаменяемо.
+
* Экземпляры подтипов и супертипов могут использоваться взаимозаменяемо.
  
 
=== Объяснение ===
 
=== Объяснение ===
 
{{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]. Подтип как минимум должен поддерживать все операции супертипа, чтобы его можно было безопасно подставлять на место супертипа, поэтому правильный вариант - (A).
 
  
{{question-ok|}}
+
Фактически вопрос касается приниципа подстановки Лисков [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].
 +
Подтип как минимум должен поддерживать все операции супертипа, чтобы его можно было безопасно подставлять на место супертипа, поэтому правильный вариант — «Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип».
  
{{checkme|[[Участник:Nikitashapovalov|Nikitashapovalov]] 01:11, 9 января 2025 (UTC)}}
+
{{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]. Подтип как минимум должен поддерживать все операции супертипа, чтобы его можно было безопасно подставлять на место супертипа, поэтому правильный вариант — «Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип».