Наследование: повторное использование кода
Повторно используйте и расширяйте существующий код с помощью наследования в C#
«Наследование: повторное использование кода» — бесплатный урок C# Academy на CoddyKit. Это урок 6 из 7. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 7 уроков всего.
Введение в наследование
Наследование: повторное использование кода
Добро пожаловать на следующий урок! На этом уроке вы узнаете о наследовании — одном из основных принципов объектно-ориентированного программирования — и о том, как оно позволяет повторно использовать код и создавать иерархии. Давайте начнём!

Что такое наследование?
Что такое наследование?
Наследование позволяет одному классу (дочернему или производному классу) получить атрибуты и методы другого класса (родительского или базового класса). Оно обеспечивает повторное использование кода и создание иерархических связей между классами.
Пример: Класс «Car» может служить базовым классом для классов «ElectricCar» и «SportsCar», совместно используя такие свойства, как «Color» и «Speed».
Определение базового класса
Определение базового класса
Базовый класс содержит общие свойства и методы, которые могут наследоваться производными классами. Пример:
Ключевой момент: Определяйте повторно используемый код в базовом классе.
using System;
class Vehicle {
public string Color;
public void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
Создание производного класса
Создание производного класса
Производный класс наследует свойства и методы базового класса. Используйте символ :, чтобы указать наследование. Пример:
Ключевой момент: Производные классы могут добавлять новые возможности или переопределять функциональность базового класса.
using System;
class Vehicle {
public string Color;
public void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class Car : Vehicle {
public int NumberOfDoors;
public void ShowDetails() {
Console.WriteLine("Color: " + Color);
Console.WriteLine("Doors: " + NumberOfDoors);
}
}
class Program {
static void Main() {
Car myCar = new Car();
myCar.Color = "Red"; // Inherited from Vehicle
myCar.NumberOfDoors = 4;
myCar.Drive(); // Inherited from Vehicle
myCar.ShowDetails();
}
}
Переопределение методов
Переопределение методов
Производные классы могут переопределять методы базового класса, чтобы реализовать специализированное поведение. Используйте ключевое слово virtual в базовом классе и ключевое слово override в производном классе. Пример:
Совет: Переопределение полезно для настройки поведения производных классов.
using System;
class Vehicle {
public virtual void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class SportsCar : Vehicle {
public override void Drive() {
Console.WriteLine("The sports car is driving fast!");
}
}
class Program {
static void Main() {
SportsCar myCar = new SportsCar();
myCar.Drive(); // Calls the overridden method
}
}
Базовое ключевое слово
Базовое ключевое слово
Ключевое слово base используется для доступа к членам базового класса из производного класса. Пример:
Совет: Используйте base, чтобы расширить или дополнить поведение базового класса.
using System;
class Vehicle {
public string Color;
public virtual void Drive() {
Console.WriteLine("The vehicle is driving.");
}
}
class Truck : Vehicle {
public override void Drive() {
base.Drive(); // Calls the base class method
Console.WriteLine("The truck is carrying a heavy load.");
}
}
class Program {
static void Main() {
Truck myTruck = new Truck();
myTruck.Color = "Blue";
myTruck.Drive();
}
}
Практическое задание
Практическое задание
Создайте базовый класс с именем Animal и методом Speak(), который выводит «Животное издаёт звук». Создайте производные классы Dog и Cat, которые переопределяют метод Speak() и выводят «Собака лает» и «Кошка мяукает». Пример:
using System;
class Animal {
public virtual void Speak() {
Console.WriteLine("The animal makes a sound.");
}
}
class Dog : Animal {
public override void Speak() {
Console.WriteLine("The dog barks.");
}
}
class Cat : Animal {
public override void Speak() {
Console.WriteLine("The cat meows.");
}
}
class Program {
static void Main() {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.Speak();
myCat.Speak();
}
}
Рекомендации по наследованию
Рекомендации по наследованию
Вот несколько рекомендаций:
- Используйте наследование только при наличии явного отношения «является» (например, Car является Vehicle).
- Делайте базовые классы как можно более общими.
- При необходимости используйте
sealed, чтобы запретить дальнейшее наследование.
Совет: Наследование должно упрощать, а не усложнять ваш код.
Отличная работа!
Отличная работа!
Поздравляем! Вы научились использовать наследование для повторного использования кода и построения иерархий классов в C#. В следующем уроке мы подробно разберём полиморфизм — ещё одну мощную концепцию объектно-ориентированного программирования. Продолжайте программировать!

Часто задаваемые вопросы
Урок «Наследование: повторное использование кода» бесплатный?
Да — полный текст урока «Наследование: повторное использование кода» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 7 уроков всего.
Чему я научусь в уроке «Наследование: повторное использование кода»?
Повторно используйте и расширяйте существующий код с помощью наследования в C# Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 6 из 7.
Сколько времени занимает урок «Наследование: повторное использование кода»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое объектно-ориентированное программирование?
- Определение классов и объектов
- Свойства и методы
- Конструкторы в C#
- Инкапсуляция и модификаторы доступа
- Наследование: повторное использование кода
- Полиморфизм и переопределение методов