StudyCode
junioroop

Назовите 4 принципа ООП

Войди для отслеживания
Ответ

Инкапсуляция — скрытие внутренней реализации, доступ через публичный интерфейс. Наследование — класс-потомок получает свойства и методы родителя. Полиморфизм — один интерфейс, разные реализации. Абстракция — выделение существенных характеристик объекта, скрытие деталей.

JSJavaScriptPYPythonC#C#C++C++
Примеры кода:
JSJavaScript
// Наследование и полиморфизм
class Shape {
  area() { return 0; }
}

class Circle extends Shape {
  constructor(r) {
    super();
    this.r = r;
  }
  area() { return Math.PI * this.r ** 2; } // полиморфизм
}

class Rectangle extends Shape {
  constructor(w, h) {
    super();
    this.w = w; this.h = h;
  }
  area() { return this.w * this.h; } // полиморфизм
}
C#C#
abstract class Shape
{
    public abstract double Area(); // абстракция
}

class Circle : Shape
{
    private double _r; // инкапсуляция
    public Circle(double r) => _r = r;
    public override double Area() => Math.PI * _r * _r;
}

class Rectangle : Shape
{
    public double W { get; }
    public double H { get; }
    public Rectangle(double w, double h) { W = w; H = h; }
    public override double Area() => W * H;
}