C++
C#
Dart
F#
JavaScript
Kotlin
Python
#include <iostream> class Person { public: Person(std::string name, unsigned age) { this->name = name; this->age = age; } virtual void print() const { std::cout << "Name: " << name << "\tAge: " << age << std::endl; } private: std::string name; // имя unsigned age; // возраст }; class Employee: public Person { public: Employee(std::string name, unsigned age, std::string company): Person(name, age) { this->company = company; } void print() const override { Person::print(); std::cout << "Company: " << company << std::endl; } private: std::string company; // компания }; int main() { Person person {"Tom", 38}; person.print(); // Name: Tom Age: 38 Employee employee {"Bob", 42, "Microsoft"}; employee.print(); // Name: Bob Age: 42 // Company: Microsoft }
Person person = new("Tom", 38); person.Print(); // Name: Tom Age: 38 Employee employee = new("Bob", 42, "Microsoft"); employee.Print(); // Name: Bob Age: 42 // Company: Microsoft // типовой класс class Person { string name; // имя int age; // возраст public Person(string name, int age) { this.name = name; this.age = age; } public virtual void Print() { Console.WriteLine($"Name: {name}\tAge: {age}"); } } class Employee: Person { string company; // компания public Employee(string name, int age, string company): base(name, age) { this.company = company; } public override void Print() { base.Print(); Console.WriteLine($"Company: {company}"); } }
class Person{ String name; int age; Person(this.name, this.age); void display() => print("Name: $name \tAge: $age"); } class Employee extends Person{ String company; Employee(super.name, super.age, this.company); @override void display(){ super.display(); print("Company: $company"); } } void main (){ Person tom = Person("Tom", 38); tom.display(); Employee bob = Employee("Bob", 42, "Microsoft"); bob.display(); }
type Person(name, age) = member this.Name = name member this.Age = age abstract member Print : unit -> unit default this.Print() = printfn $"Person name: {this.Name} age: {this.Age}" type Employee(name, age, company) = inherit Person(name, age) member this.Company = company override this.Print() = base.Print() printfn $"Company: {this.Company}" let tom = Person("Tom", 38) tom.Print() let bob = Employee("Bob", 42, "Microsoft") bob.Print()
Прототипное наследование:
function Person (name, age) { this.name = name; this.age = age; } Person.prototype.print = function(){ console.log(`Name: ${this.name} Age: ${this.age}`); }; function Employee(name, age, comp){ Person.call(this, name, age); this.company = comp; } Employee.prototype = Object.create(Person.prototype); Employee.prototype.constructor = Employee; Employee.prototype.print = function(){ Person.prototype.print.call(this); console.log(`Company: ${this.company}`); }; const tom = new Person("Tom", 38); tom.print(); const bob = new Employee("Bob", 42, "Microsoft"); bob.print();
Наследование на основе классов:
class Person{ #name; #age; constructor(name, age){ this.#name = name; this.#age = age; } print(){ console.log(`Name: ${this.#name} Age: ${this.#age}`); } } class Employee extends Person{ #company; constructor(name, age, company){ super(name, age); this.#company = company; } print(){ super.print(); console.log(`Company: ${this.#company}`); } } const tom = new Person("Tom", 38); tom.print(); const bob = new Employee("Bob", 42, "Microsoft"); bob.print();
fun main() { val tom = Person("Tom", 38) tom.display() val bob = Employee("Bob", 42, "Microsoft") bob.display() } open class Person(val name: String, var age: Int){ open fun display() = println("Name: $name \tAge: $age") } class Employee(name: String, age: Int, val company: String): Person(name, age){ override fun display(){ super.display() println("Company: $company") } }
class Person: def __init__(self, name, age): self.name = name self.age = age def display(self): print(f"Name: {self.name} Age: {self.age}") class Employee(Person): def __init__(self, name, age, company): super().__init__(name, age) self.company = company def display(self): super().display() print(f"Company: {self.company}") tom = Person("Tom", 38) tom.display() bob = Employee("Bob", 42, "Microsoft") bob.display()