Переопределение (перегрузка) методов
Скажу несколько слов о такой "полезной вещи" как перегрузка (переопределение) методов (methods overloading) - в русскоязычной литературе принят дословный перевод - перегрузка, но лично я предпочитаю говорить - переопределение, что снимает множество вопросов новичков. Что это такое? Это возможность создать несколько вариантов одного и того же метода, отличающихся набором параметров. В качестве примера используем конструктор нашего любимого класса "Черный ящик". Например в одном случае мы хотим сразу же при создании нового экземпляра класса (черного ящика) вырезать название и поместить в него содержимое, а в другом случае мы хотим только вырезать при создании ящика его название, а содержимое поместить потом. В данном случае, какой путь вы изберете, не принципиально, а зависит только от вашего желания и удобства в каждом конкретном случае.
Public Sub New(ByVal NewName As String)
mBoxName = NewName
End Sub
Public Sub New(ByVal NewName As String, ByVal NewContent As String)
mBoxName = NewName
mBoxContent = NewContent
End Sub
Теперь при создании экземпляра класса можно использовать любой из двух конструкторов.
Dim myBlackBox As BlackBox = New BlackBox("Мой персональный черный ящик")
MessageBox.Show(myBlackBox.Name)
Dim myBlackBox As BlackBox = New BlackBox("Мой персональный черный ящик", "Прошлогодние газеты")
MessageBox.Show(myBlackBox.Name)
Это справедливо для любого метода (Function или Sub), при этом возвращаемое значение тоже может быть разным.
Public Function OpenBox(ByVal DropContent As Boolean) As Boolean
Dim isSomethingThere As Boolean
...
Return isSomethingThere
End Function
Public Function OpenBox() As Boolean
Dim isSomethingThere As Boolean
...
Return isSomethingThere
End Function
Public Function OpenBox(ByVal WhatToAdd As String) As String
...
Return BoxContent
End Function
Но, учтите, что функции должны отличаться параметрами, только тогда переопределение происходит, иначе компилятор выдаст ошибку, если вы определите для одинаковые функции отличающиеся лишь типом возвращаемого значения. На практике этого и не нужно, так как значение можно преобразовать. Также, я должен сказать, что существует способ визуально выделить перегруженные (перегружаемые) методы, добавив к определению каждого ключевое слово Overloads.
Public Overloads Function OpenBox(ByVal DropContent As Boolean) As Boolean
Dim isSomethingThere As Boolean
...
Return isSomethingThere
End Function
Public Overloads Function OpenBox() As Boolean
Dim isSomethingThere As Boolean
...
Return isSomethingThere
End Function
Public Overloads Function OpenBox(ByVal WhatToAdd As String) As String
...
Return BoxContent
End Function
Если вы используете ключевое слово Overloads хотя бы в одном определении функции, то вы должны использовать его во всех остальных. Зато, просматривая код в будущем, вы сразу же найдете перегруженные (переопределенные) методы.
- Позиционные системы счисления
- Смешанные системы счисления
- Системы счисления разных народов Древнеегипетская система счисления
- Римская система счисления
- 4. Логические (функциональные) схемы
- Виды высказываний
- История
- [Править]Централизованные вычисления
- [Править]Конструкторы и самодельные компьютеры
- [Править]Первые фирменные домашние пк
- [Править]Amiga и Macintosh
- [Править]Windows 95, мультимедийные возможности пк
- [Править]Один компьютер — один хозяин
- [Править]Продажи во всём мире
- [Править]Отечественные персональные компьютеры
- Разновидности устройств ввода
- 1.2 Устройства ввода-вывода
- Информация ввод вывод интерфейс
- Устройства ввода текста, графики и команд
- Клавиатура
- Плазменные мониторы
- Классификация по
- Системное по Прикладное по Инструментальное по
- Операционные системы
- [Править]Функции ос
- [Править]Понятие операционной системы
- [Править]Основные идеи ос
- [Править]Встроенные программы
- [Править]Утилиты
- [Править]Утилиты используются для
- [Править]Типы утилит
- [Править]Системы программирования
- [Править]Системы управления базами данных
- 16 Системы программирования
- Классификация По типу
- По сфере применения
- 19 История компьютерной вирусологии
- Создание вирусов и его причины
- [Править]Каналы
- -Профилактические меры, позволяющие уменьшить вероятность заражения вирусом;
- 1. В сфере оборота компьютерной информации:
- 3. В сфере информационного оборудования:
- 4. В сфере защиты охраняемой законом информации:
- 5. В сфере информационных правоотношений:
- 6. В сфере экономики и компьютерной информации:
- Графические интерфейсы и расширения для dos
- Семейство Windows 9x
- [Править]Семейство Windows nt
- Интегрированные программные продукты
- Основные стандартные утилиты Windows xp (программы из группы стандартные)
- Классификация файловых систем
- Задачи файловой системы
- 27 Окна Windows
- Диалоговые окна
- Управление меню
- Обозначения, принятые в меню
- Главное меню
- Контекстное меню
- Строка меню окна
- Системное меню
- История
- Состав программного продукта
- Виды баз данных
- [Править]Классификация по модели данных
- [Править]Классификация по среде постоянного хранения
- [Править]Классификация по содержимому
- [Править]Классификация по степени распределённости
- [Править]Другие виды бд
- 37 Работа с базой данных на примере программы "Аксес" ("Access")
- Разработка базы данных
- История
- Основы алгоритмизации
- 43 Понятие о системе программирования
- 46 Ооп. Давайте знакомиться
- Объект - Черный ящик
- Создание, жизнь и смерть объектов
- Переопределение (перегрузка) методов
- Наследование
- 1.3. Выражения и операции.
- 1.4. Операторы
- 50 Функции ввода и вывода
- 0 2 4 6 8 10
- Технологии повлиявшие на развитие компьютерных сетей
- Системы пакетной обработки
- Многотерминальные системы — прообраз сети
- Первые глобальные компьютерные сети
- Первые локальные компьютерные сети
- Компьютерные сети сегодня
- Классификация [править]По территориальной распространенности
- [Править]По типу функционального взаимодействия
- Достоинства
- [Править]Недостатки
- Достоинства
- [Править]Недостатки
- Достоинства
- [Править]Недостатки
- История
- Особенности Интернета
- Система адресации в интернет
- Что ищем?
- [Править]Где ищем?
- [Править]Как ищем?
- Протоколы получения почты
- [Править]pop3
- [Править]imap
- [Править]Различия
- Введение
- [Править]Устройство
- [Править]Опции
- Структура и принципы Всемирной паутины
- 59 Влияние компьютера на организм человека.
- 60 Эргономика рабочего места