Отправляет email-рассылки с помощью сервиса Sendsay

Visual Basic.NET. Уроки

  Все выпуски  

Visual Basic.NET. Уроки


Информационный Канал Subscribe.Ru

Основы VB.NET. Уроки с сайта http://progs.biz

Рассылка №15

Основы VB.NET. Урок 12. Вызываем методы родителя.
Основы VB.NET. Урок 13. Переопределяем методы родителя.

Полные версии уроков (с картинками) можно найти по адресам
Урок 12. Вызываем методы родителя.
Урок 13. Переопределяем методы родителя.

Основы VB.NET. Урок 12. Вызываем методы родителя

Если один класс есть потомок другого класса, то в них могут быть методы с одинаковым названием. И при этом в классе-потомке вы можете вызывать как метод собственного класса, так и метод класса-предка. Вот пример на эту тему:

Imports System
Class A
    Public n As Integer
    Public Sub incN()
        'Увеличиваем n
        n = n + 1
    End Sub
End Class
'Класс B - потомок класса A
Class B
    Inherits A
    Public Shadows Sub incN()
        'Увеличиваем n
        n = n + 10
    End Sub
    Public Sub F1()
        'Вызываем метод incN класса B (потомка)
        incN()
    End Sub
    Public Sub F2()
        'Вызываем метод incN класса A (предка)
        MyBase.incN()
    End Sub
End Class

Class Test
    Public Shared Sub Main()
        Dim p1 As New B()
        Dim p2 As New B()
        p1.F1()
        Console.WriteLine(p1.n)
        p2.F2()
        Console.WriteLine(p2.n)
    End Sub
End Class

Здесь и в классе предке (класс A), и в классе-потомке (класс B) есть метод incN. В классе-предке он увеличивает переменную n на 1, в классе-потомке - на 10. Обратите внимание, что в классе-потомке мы объявили этот метод с ключевым словом Shadows:

    ...
    Public Shadows Sub incN()
    ...

Это слово мы должны использовать в потомке для перекрытия одноименного метода класса-предка.

Кроме того в классе-потомке B есть два метода - F1 и F2. Внутри F1 мы вызываем метод incN() класса-потомка, внутри F2 - incN() класса-предка. Обратите внимание, что для вызова метода из класса-предка мы используем ключевое слово MyBase:

        ...
        MyBase.incN()
        ...

В классе Test мы создаем два экземпляра класса B. Для одного из них мы вызываем метод F1, для другого - F2. Программа наша выведет на экран 10 и 1 соответственно.

Наверх

Основы VB.NET. Урок 13. Переопределяем методы родителя

На прошлом уроке мы рассмотрели один из способов переопределения в классе-потомке метода из родительского класса. Это мы сделали с помощью ключевого слова Shadows. Существует и другой способ - через ключевые слова Overridable и Overrides. Вот пример:

Class A
    Public n As Integer
    Public Overridable Sub incN()
        n = n + 1
    End Sub
End Class
'Класс B - потомок класса A
Class B
    Inherits A
    Public Overrides Sub incN()
        n = n + 10
    End Sub
End Class

Как вы видите, тут мы в классе-предке A метод incN объявили с ключевым словом Overridable. Это означает, что этот метод может быть переписан в классе-потомке. Одноименный же метод incN в классе-потомке B мы объявляем с ключевым словом Overrides. Это слово означает, что он переписывает соответствующий метод класса-предка.

Наверх
Рассылки Subscribe.Ru
Delphi. Уроки

Delphi. Уроки. Уровень - от начинающего до профи. Каждый урок рассчитан на 15 - 20 минут. Темы - библиотека VCL, создание компонентов, создание ActiveX, COM, COM+, DCOM, FAQ, работа с базами данных (InterBase и др).


Copyright Алексеев Игорь, 2002

Copyright сайт progs.biz, 2002



http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное