TypeScript. Class Inheritance

enum Sex {
    Man,
    Woman
}

class Man {
    name: string = "DefaultName";
    family: string = "DefaultFamily";
    age: number = 18;
    readonly sex: Sex.Man

    constructor(name: string, family: string) {
        this.name = name;
        this.family = family;
    }

    toString(): string {
        return this.name + ' ' + this.family;
    }
}

const man = new Man('Stanley', 'Panteleev');
console.log(man.toString());

// --- INHERITANCE

class SonOfMan extends Man {
    patronymic: string = "Default patronymic";

    // overriding constructor
    constructor(name, family, patronymic: string) {
        super(name, family);
        this.patronymic = patronymic;
    }

    // overriding method
    toString(): string {
        return super.toString() + ' ' + this.patronymic;
    }
}

const sonOfMan = new SonOfMan('Lev', 'Panteleev', 'SonOfStanley')
console.log(sonOfMan.toString());
This entry was posted in Без рубрики. Bookmark the permalink.