Herança
Definição
A herança é utilizado para reutilizar código e também para aplicar polimorfismo, pois ao extender uma classe, a “classe filha” herda todos os atributos e comportamentos da “classe pai”.
É necessário tomar cuidado ao utilizar a herança, pois isso pode causar uma complexidade desnecessária no código. Desse modo, existem outras maneiras de desacoplar o código como:
-
Composição
-
Agregação
-
Associação
Exemplo
export class Person {
constructor(
public name: string,
public lastName: string,
private age: number,
protected cpf: string,
) {}
getAge(): number {
return this.age;
}
getCpf(): string {
return this.cpf;
}
getFullName(): string {
return this.name + ' ' + this.lastName;
}
}
export class Student extends Person {
getFullName(): string {
return `(Aluno) ${this.name} ${this.lastName}`;
}
}
export class Costumer extends Person {
getFullName(): string {
return `(Cliente) ${this.name} ${this.lastName}`;
}
}
const person = new Person('Luiz', 'Otávio', 30, '000.000.000-00');
console.log(person.getFullName()); // Luiz Otávio
const student = new Student('Luiz', 'Otávio', 30, '000.000.000-00');
console.log(student.getFullName()); // (Aluno) Luiz Otávio
const costumer = new Costumer('Luiz', 'Otávio', 30, '000.000.000-00');
console.log(student.getFullName()); // (Cliente) Luiz Otávio