В языке C# отношения между классами можно реализовать с помощью наследования и композиции.
1. Наследование:
Наследование позволяет создавать иерархию классов, где дочерний класс (потомок) наследует свойства и методы от родительского класса (родителя). Для создания наследования используется ключевое слово :
. Пример:
class Animal { protected string name; public void Eat() { Console.WriteLine("Eating..."); } } class Dog : Animal { public void Bark() { Console.WriteLine("Barking..."); } } class Program { static void Main(string[] args) { Dog dog = new Dog(); dog.Eat(); // метод родительского класса dog.Bark(); // метод дочернего класса } }
В данном примере класс Dog
наследует свойство name
и метод Eat()
от класса Animal
. Наследование позволяет использовать общий код в родительском классе и создавать более специфичный код в дочернем классе. При этом можно переопределить методы и свойства родительского класса, если это необходимо.
2. Композиция:
Композиция позволяет объединять несколько классов в один, создавая объекты одного класса внутри другого. Это достигается путем создания экземпляров одного класса внутри другого класса. Пример:
class Engine { public void Start() { Console.WriteLine("Engine started."); } } class Car { private Engine engine; public Car() { engine = new Engine(); } public void Start() { engine.Start(); Console.WriteLine("Car started."); } } class Program { static void Main(string[] args) { Car car = new Car(); car.Start(); } }
В данном примере класс Car
содержит экземпляр класса Engine
, что позволяет использовать его метод Start()
в методе Start()
класса Car
. Таким образом, композиция позволяет объединять функциональности нескольких классов в одном, обеспечивая более гибкую структуру.
Отношения между классами в C# могут быть различными в зависимости от требований проекта. Наследование и композиция предоставляют мощные инструменты для организации кода и повторного использования функциональности.