C++
C#
Dart
F#
Kotlin
Python
#include <iostream> class Shape { public: virtual double getArea() const = 0; // площадь фигуры virtual double getPerimeter() const = 0; // периметр фигуры }; class Rectangle : public Shape // класс прямоугольника { public: Rectangle(double w, double h) : width(w), height(h) { } double getArea() const override { return width * height; } double getPerimeter() const override { return 2 * (width + height); } private: double width; // ширина double height; // высота }; class Circle : public Shape // круг { public: Circle(double r) : radius(r) { } double getArea() const override { return radius * radius * 3.14; } double getPerimeter() const override { return 2 * 3.14 * radius; } private: double radius; // радиус круга }; int main() { Rectangle rect{30, 50}; Circle circle{30}; std::cout << "Rectangle area: " << rect.getArea() << std::endl; std::cout << "Rectangle perimeter: " << rect.getPerimeter() << std::endl; std::cout << "Circle area: " << circle.getArea() << std::endl; std::cout << "Circle perimeter: " << circle.getPerimeter() << std::endl; }
Rectangle rect = new(30, 50); Circle circle = new(30); Console.WriteLine($"Rectangle area: {rect.GetArea()}"); Console.WriteLine($"Rectangle perimeter: {rect.GetPerimeter()}"); Console.WriteLine($"Circle area: {circle.GetArea()}"); Console.WriteLine($"Circle perimeter: {circle.GetPerimeter()}"); abstract class Shape { public abstract double GetArea(); // площадь фигуры public abstract double GetPerimeter(); // периметр фигуры } class Rectangle : Shape // класс прямоугольника { double width; // ширина double height; // высота public Rectangle(double w, double h) { this.width = w; this.height = h; } public override double GetArea() { return width * height; } public override double GetPerimeter() { return 2 * (width + height); } } class Circle : Shape // круг { double radius; // радиус круга public Circle(double r) => this.radius = r; public override double GetArea() { return radius * radius * 3.14; } public override double GetPerimeter() { return 2 * 3.14 * radius; } }
abstract class Shape { double getArea(); // площадь фигуры double getPerimeter(); // периметр фигуры } class Rectangle extends Shape{ // класс прямоугольника double width; double height; Rectangle(this.width, this.height); @override double getArea() => width * height; @override double getPerimeter() => 2 * (width + height); } class Circle extends Shape // круг { double radius; // радиус круга Circle(this.radius); @override double getArea() => radius * radius * 3.14; @override double getPerimeter() => 2 * 3.14 * radius; } void main (){ Rectangle rect = Rectangle(30, 50); Circle circle = Circle(30); print("Rectangle area: ${rect.getArea()}"); print("Rectangle perimeter: ${rect.getPerimeter()}"); print("Circle area: ${circle.getArea()}"); print("Circle perimeter: ${circle.getPerimeter()}"); }
[<AbstractClass>] type Shape() = abstract GetArea: unit->double // площадь фигуры abstract GetPerimeter: unit->double // периметр фигуры // класс прямоугольника type Rectangle(width:double, height:double) = inherit Shape() override this.GetArea() = width * height override this.GetPerimeter() = 2.0 * (width + height) // круг type Circle(radius:double) = inherit Shape() override this.GetArea() = radius * radius * 3.14 override this.GetPerimeter() = radius * 2.0 * 3.14 let rect = Rectangle(30, 50) let circle = Circle(30) printfn "Rectangle area: %f" (rect.GetArea()) printfn "Rectangle perimeter: %f" (rect.GetPerimeter()) printfn "Circle area: %f" (circle.GetArea()) printfn "Circle perimeter: %f" (circle.GetPerimeter())
fun main() { val rect = Rectangle(30.0, 50.0) val circle = Circle(30.0) println("Rectangle area: ${rect.getArea()}") println("Rectangle perimeter: ${rect.getPerimeter()}") println("Circle area: ${circle.getArea()}") println("Circle perimeter: ${circle.getPerimeter()}") } abstract class Shape { abstract fun getArea(): Double // площадь фигуры abstract fun getPerimeter(): Double // периметр фигуры } // класс прямоугольника class Rectangle(val width: Double, val height: Double) : Shape() { override fun getArea() = width * height override fun getPerimeter() = 2 * (width + height) } // круг class Circle(val radius: Double): Shape() { override fun getArea() = radius * radius * 3.14; override fun getPerimeter() = 2 * 3.14 * radius; }
from abc import ABC, abstractmethod class Shape(ABC): @abstractmethod def area (self): pass # площадь фигуры @abstractmethod def perimeter(self): pass # периметр фигуры # класс прямоугольника class Rectangle(Shape): def __init__(self, width, height): self.width = width self.height = height def area (self): return self.width * self.height def perimeter(self): return 2.0 * (self.width + self.height) # круг class Circle(Shape): def __init__(self, radius): self.radius = radius def area (self): return self.radius * self.radius * 3.14 def perimeter(self): return self.radius * 2.0 * 3.14 rect = Rectangle(30, 50) circle = Circle(30) print("Rectangle area:", rect.area()) print("Rectangle perimeter:", rect.perimeter()) print("Circle area:", circle.area()) print("Circle perimeter:", circle.perimeter())