0Pricing
C# Academy · Урок

Наследование: повторное использование кода

Повторно используйте и расширяйте существующий код с помощью наследования в C#

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

Введение в наследование

Наследование: повторное использование кода

Добро пожаловать на следующий урок! На этом уроке вы узнаете о наследовании — одном из основных принципов объектно-ориентированного программирования — и о том, как оно позволяет повторно использовать код и создавать иерархии. Давайте начнём!

Наследование: повторное использование кода — иллюстрация 1

Что такое наследование?

Что такое наследование?

Наследование позволяет одному классу (дочернему или производному классу) получить атрибуты и методы другого класса (родительского или базового класса). Оно обеспечивает повторное использование кода и создание иерархических связей между классами.

Пример: Класс «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#. В следующем уроке мы подробно разберём полиморфизм — ещё одну мощную концепцию объектно-ориентированного программирования. Продолжайте программировать!

Наследование: повторное использование кода — иллюстрация 10

Часто задаваемые вопросы

Урок «Наследование: повторное использование кода» бесплатный?

Да — полный текст урока «Наследование: повторное использование кода» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

Все уроки этого курса

  1. Что такое объектно-ориентированное программирование?
  2. Определение классов и объектов
  3. Свойства и методы
  4. Конструкторы в C#
  5. Инкапсуляция и модификаторы доступа
  6. Наследование: повторное использование кода
  7. Полиморфизм и переопределение методов
← Назад к C# Academy