Python

Помогите пж Важно:Когда нажимаешь на run в программе, должно показывать информацию о человеке, о учителе и о директоре.

Реализовать родительский класс человека, а также дочерние классы директора, преподавателя и ученика. Описать для каждого класса необходимые свойства и методы.Важно: директор помимо своих обязанностей может также и преподавать(множественное наследование).
E[
Engage [Ex-Sushi]
105
program person_info;
type
person = class
private
name: string;
age: integer;
public
constructor create(n: string; a: integer);
procedure show_person; virtual;
end;

teacher = class(person)
private
subject: string;
public
constructor create(n: string; a: integer; s: string);
procedure show_person; override;
end;

student = class(person)
private
grade: integer;
public
constructor create(n: string; a: integer; g: integer);
procedure show_person; override;
end;

director = class(person)
private
duty: string;
public
constructor create(n: string; a: integer; d: string);
procedure show_person; override;
function teach(subj: string): teacher;
end;

constructor person.create(n: string; a: integer);
begin
name := n;
age := a;
end;

procedure person.show_person;
begin
writeln('Name: ', name);
writeln('Age: ', age);
end;

constructor teacher.create(n: string; a: integer; s: string);
begin
inherited create(n, a);
subject := s;
end;

procedure teacher.show_person;
begin
inherited show_person;
writeln('Subject: ', subject);
end;

constructor student.create(n: string; a: integer; g: integer);
begin
inherited create(n, a);
grade := g;
end;

procedure student.show_person;
begin
inherited show_person;
writeln('Grade: ', grade);
end;

constructor director.create(n: string; a: integer; d: string);
begin
inherited create(n, a);
duty := d;
end;

procedure director.show_person;
begin
inherited show_person;
writeln('Duty: ', duty);
end;

function director.teach(subj: string): teacher;
begin
result := teacher.create(name, age, subj);
end;

var
p1, p2, p3: person;
begin
p1 := person.create('John Doe', 30);
p2 := teacher.create('Jane Doe', 40, 'Mathematics');
p3 := director.create('Jim Doe', 50, 'School Director');

writeln('Person:');
p1.show_person;
writeln;

writeln('Teacher:');
p2.show_person;
writeln;

writeln('Director:');
p3.show_person;
writeln;

writeln('Director as a Teacher:');
p3.teach('English').show_person;
end.
ЖЗ
Жен Заров
790
Лучший ответ
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}

getInfo() {
return `Name: ${this.name}, Age: ${this.age}`;
}
}

class Teacher extends Person {
constructor(name, age, subject) {
super(name, age);

this.subject = subject;
}

getInfo() {
return `${super.getInfo()}, Subject: ${this.subject}`;
}

teach() {
console.log(`${this.name} is teaching ${this.subject}.`);
}
}

class Director extends Teacher { // директор помимо своих обязанностей может также и преподавать (множественное наследование).

constructor(name, age, subject, department) { //добавляем department - отдел/кафедру/школу/учреждения/институты...

super(name, age, subject); //вызываем конструктор Person + Teacher

this.department = department; //добавляем department - отдел/кафедру/школу/учреждения/институты...

}

getInfo() { //модифицирум getInfo()

return `${super.getInfo()}, Department: ${this.department}`; //добавлям Department: ${this.department}

}

manageDepartment(){ //мы можем добавляь manageDepartment(), manageSchool(), manageInstitute(), ...

console.log(`${this.name} is managing the ${this.department}.`); //${this.department} - department - отдел/кафeдрa/шкoлa/учpéжdénie/ínsTíTúT...

}
}

class Student extends Person{ //Student - cTudent - účenik

constructor(name, age, course){ //course - kurs

super(name, age); //výzyvaem konstrúkTor Person

this.course = course; //dobávaem course - kurs

}

getInfo(){ //modificiruem getInfo()

return `${super.getInfo()}, Course: ${this.course}`; //dobávaem Course: ${this..course}

} //studyCourse(); learnCourse(); ... studyCourse(){ console . log ( ` $ { this . name } is studying $ { this . course } . ` ) ; }} run(){ const person = new Person('John', 25); const teacher = new Teacher('Mary', 35, 'Math'); const director = new Director('Jack', 45,'English','School'); const student = new Student('Kate', 18,'History'); console . log ( person . getInfo ( ) ) ; console . log ( teacher . getInfo ( ) ) ; console . log ( director . getInfo ( ) ) ; console . log ( student . getInfo ( ) ) ; teacher . teach ( ) ; director . teach ( ) ; director . manageDepartment(); student . studyCourse(); }}
Engage [Ex-Sushi] Спасибо)