VB Visual Basic  ·  20 вопросов  ·  ~55 мин  ·  ⏱ Таймер 55:00  ·  Лёгкий  · 

Наследование и интерфейсы

Тест по теме «Наследование и интерфейсы» состоит из 20 вопросов: нужно читать код, сравнивать близкие решения, находить границы применимости правил и разбирать последствия ошибок. Заданий с кодом — 12; после каждого ответа открывается объяснение.

Отвечено: 0 из 20
⏱ --:--
0%
💡 Инструкция: Выберите один ответ из пяти. На тест отведено 55 минут; после ответа можно открыть объяснение.
Вопрос 1 из 20
Раздел «Наследование классов»: код использует MustInherit. Какой вывод останется верным при других допустимых входных данных?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
MustInherit Class Document
    Public MustOverride Function Render() As String
End Class
Class PdfDocument
    Inherits Document
    Public Overrides Function Render() As String
        Return "pdf"
    End Function
End Class
Вопрос 2 из 20
Раздел «Наследование классов»: что должно остаться явным после переработки участка с MustInherit?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Strict On
Namespace ReviewCase7_1
    MustInherit Class Document
        Public MustOverride Function Render() As String
    End Class
    Class PdfDocument
        Inherits Document
        Public Overrides Function Render() As String
            Return "pdf"
        End Function
    End Class
End Namespace
Вопрос 3 из 20
Раздел «Наследование классов»: какой результат следует зафиксировать до запуска отрицательного сценария?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Explicit On
Option Infer On
Namespace BoundaryCase7_1
    MustInherit Class Document
        Public MustOverride Function Render() As String
    End Class
    Class PdfDocument
        Inherits Document
        Public Overrides Function Render() As String
            Return "pdf"
        End Function
    End Class
End Namespace
Вопрос 4 из 20
Раздел «Наследование классов»: как уменьшить риск дефекта, не подменяя причину запасным значением?
Вопрос 5 из 20
Раздел «Наследование классов»: какой вывод описывает семантику, а не предпочтение в оформлении?
Вопрос 6 из 20
Какой контракт действительно соблюдает показанный фрагмент из раздела «Реализация интерфейсов»?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Interface IClock
    Function UtcNow() As DateTimeOffset
End Interface
Class FixedClock
    Implements IClock
    Public Function UtcNow() As DateTimeOffset Implements IClock.UtcNow
        Return DateTimeOffset.UnixEpoch
    End Function
End Class
Вопрос 7 из 20
Раздел «Реализация интерфейсов»: что должно остаться явным после переработки участка с IClock?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Strict On
Namespace ReviewCase7_2
    Interface IClock
        Function UtcNow() As DateTimeOffset
    End Interface
    Class FixedClock
        Implements IClock
        Public Function UtcNow() As DateTimeOffset Implements IClock.UtcNow
            Return DateTimeOffset.UnixEpoch
        End Function
    End Class
End Namespace
Вопрос 8 из 20
Раздел «Реализация интерфейсов»: какое правило нельзя считать проверенным одним обычным примером?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Explicit On
Option Infer On
Namespace BoundaryCase7_2
    Interface IClock
        Function UtcNow() As DateTimeOffset
    End Interface
    Class FixedClock
        Implements IClock
        Public Function UtcNow() As DateTimeOffset Implements IClock.UtcNow
            Return DateTimeOffset.UnixEpoch
        End Function
    End Class
End Namespace
Вопрос 9 из 20
Раздел «Реализация интерфейсов»: что нужно сделать частью контракта рабочего модуля?
Вопрос 10 из 20
Раздел «Реализация интерфейсов»: какой вывод описывает семантику, а не предпочтение в оформлении?
Вопрос 11 из 20
Раздел «Полиморфное переопределение»: какое утверждение позволяет предсказать поведение фрагмента по правилам Visual Basic и .NET?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Class BaseParser
    Public Overridable Function Parse(text As String) As Integer
        Return Integer.Parse(text)
    End Function
End Class
Class SafeParser
    Inherits BaseParser
    Public Overrides Function Parse(text As String) As Integer
        Dim value As Integer
        If Not Integer.TryParse(text, value) Then Return 0
        Return value
    End Function
End Class
Вопрос 12 из 20
Раздел «Полиморфное переопределение»: какой комментарий к изменению будет технически обоснован?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Strict On
Namespace ReviewCase7_3
    Class BaseParser
        Public Overridable Function Parse(reviewText As String) As Integer
            Return Integer.Parse(reviewText)
        End Function
    End Class
    Class SafeParser
        Inherits BaseParser
        Public Overrides Function Parse(reviewText As String) As Integer
            Dim value As Integer
            If Not Integer.TryParse(reviewText, value) Then Return 0
            Return value
        End Function
    End Class
End Namespace
Вопрос 13 из 20
Раздел «Полиморфное переопределение»: для фрагмента с BaseParser добавляют регрессионный тест. Какой контракт он должен защищать?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Explicit On
Option Infer On
Namespace BoundaryCase7_3
    Class BaseParser
        Public Overridable Function Parse(edgeText As String) As Integer
            Return Integer.Parse(edgeText)
        End Function
    End Class
    Class SafeParser
        Inherits BaseParser
        Public Overrides Function Parse(edgeText As String) As Integer
            Dim value As Integer
            If Not Integer.TryParse(edgeText, value) Then Return 0
            Return value
        End Function
    End Class
End Namespace
Вопрос 14 из 20
Раздел «Полиморфное переопределение»: какой выбор не превращает скрытую ошибку в тихое продолжение работы?
Вопрос 15 из 20
Раздел «Полиморфное переопределение»: какое правило остаётся верным для современного Visual Basic?
Вопрос 16 из 20
Раздел «Обращение к базовому классу»: что здесь является частью контракта, а не особенностью одного удачного запуска?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Class BaseJob
    Public Sub New(name As String)
        If String.IsNullOrWhiteSpace(name) Then Throw New ArgumentException(NameOf(name))
    End Sub
End Class
Class ExportJob
    Inherits BaseJob
    Public Sub New(name As String)
        MyBase.New(name)
    End Sub
End Class
Вопрос 17 из 20
Раздел «Обращение к базовому классу»: перед объединением правки нужно проверить один принцип. Какой именно?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Strict On
Namespace ReviewCase7_4
    Class BaseJob
        Public Sub New(reviewName As String)
            If String.IsNullOrWhiteSpace(reviewName) Then Throw New ArgumentException(NameOf(reviewName))
        End Sub
    End Class
    Class ExportJob
        Inherits BaseJob
        Public Sub New(reviewName As String)
            MyBase.New(reviewName)
        End Sub
    End Class
End Namespace
Вопрос 18 из 20
Раздел «Обращение к базовому классу»: какое правило нельзя считать проверенным одним обычным примером?
Visual Basic / VB.NETVisual Basic · Наследование и интерфейсы
Option Explicit On
Option Infer On
Namespace BoundaryCase7_4
    Class BaseJob
        Public Sub New(edgeName As String)
            If String.IsNullOrWhiteSpace(edgeName) Then Throw New ArgumentException(NameOf(edgeName))
        End Sub
    End Class
    Class ExportJob
        Inherits BaseJob
        Public Sub New(edgeName As String)
            MyBase.New(edgeName)
        End Sub
    End Class
End Namespace
Вопрос 19 из 20
Раздел «Обращение к базовому классу»: что здесь важнее локального удобства: какой контракт должен быть виден в коде?
Вопрос 20 из 20
Раздел «Обращение к базовому классу»: какое обобщение не зависит от случайных деталей показанного примера?

Ответьте на все 20 вопросов, чтобы получить результат

🔗 Встроить тест на свой сайт (iframe) ▼

Скопируйте код и вставьте в любое место на вашем сайте:

Также доступна прямая ссылка на embed-страницу