Black Wolf
Мастер
(1878)
6 лет назад
Перезагрузка
-----------------------------------------------------------------------------------------------------------------------------------------
Это когда в программе есть 1 метод и у этого метода есть несколько реализаций, которые различаются не названием, а только аргументами и возвращаемым типом значения. Пример:
public static void Main(string Args[])
{
Method(); // 1 перезагрузка метода
Method("Это 2 перезагрузка метода");
Method(1); // Это 3 перезагрузка метода
}
public static void Method() { } // Это сам метод
public static void Method(string msg) { MessageBox.Show(msg); } // Перезагрузка метода
public static int Method(int num) { return num; } // Перезагрузка метода
-----------------------------------------------------------------------------------------------------------------------------------------
Переопределение
-----------------------------------------------------------------------------------------------------------------------------------------
Кратко - это когда в базовом классе определяется метод в ключевым словом virtual - это означает что в базовом классе этот метод может содержать реализацию, но если унаследовать какой-то класс от этого класса, то производный класс может переопределить этот метод с помощью ключевого слова override, то есть изменить его реализацию, но при этом не тронув его оболочку. Пример:
public class BaseClass
{
public virtual void Method()
{
// Реализация в базовом классе
}
}
public class Class : BaseClass // Наследуем класс от базового класса
{
public override void Method() // Переопределение метода через ключевое слово override
{
base.Method(); // Вызывает реализация базвого класса, но можно определить и свою
}
}