Основы 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 соответственно.
|