Наследование

Последнее обновление: 03.03.2024

C++

C#

Dart

F#

JavaScript

Kotlin

Python

C++

#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
}

C#

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}");
    }
}

Dart

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();
}

F#

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()

JavaScript

Прототипное наследование:

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();

Kotlin

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")
    }
}

Python

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()
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850