Back to questions
Junior — Middle
59
Какие основные отличия между интерфейсом и классом в объектно-ориентированном программировании?
Answer from AI
sobes.tech AI
Интерфейс и класс в объектно-ориентированном программировании имеют следующие ключевые отличия:
-
Назначение:
- Интерфейс определяет набор методов и свойств без реализации, служит для описания контракта, который должен реализовать класс.
- Класс — это конкретная реализация, которая может содержать как данные (поля), так и методы с реализацией.
-
Реализация:
- Интерфейс не содержит реализации методов (до C# 8.0, после появились default-реализации).
- Класс содержит реализацию всех своих методов.
-
Наследование:
- Класс может наследоваться только от одного базового класса, но может реализовывать несколько интерфейсов.
- Интерфейс может наследовать несколько других интерфейсов.
-
Использование:
- Интерфейсы используются для обеспечения полиморфизма и слабой связности.
- Классы создают объекты и содержат логику.
Пример на C#:
interface ILogger
{
void Log(string message);
}
class ConsoleLogger : ILogger
{
public void Log(string message)
{
Console.WriteLine(message);
}
}
Здесь ILogger — интерфейс, а ConsoleLogger — класс, реализующий этот интерфейс.