Ciências da computação dia 114
Programação orientada a objetos --- Herança
Herança
- Maneira de derivar classes para novas classes;
- Nova classe herda os métodos e estruturas da classe que foi derivada;
- A nova classe pode adicionar mais métodos, estruturas, assim como redefinir estruturas e métodos herdados;
- Em um diagrama, a classe filho sempre aponta para o pai;
- Use valores protected apenas em último caso;
Vantages
- reutilizar classes;
- compartilhamento de recursos entre classes.
class Base{}
class Child extends Base{
Child(arguments...){
super(arguments...); //aqui você passa os argumentos para o construtor da classe Base, se não há nenhum argumento, você pode omitir
}
}
obs: sobrecarga também pode acontecer aqui, contudo se você deixar com a mesma assinatura (mesmo nome e argumentos em uma função) essa função será reescrita(redefinição de métodos).
Nomenclaturas
- Subclasse → classe que herda;
- Superclasse → classe base (pai);
- Classe ancestral → classe que uma Superclasse herda;
- Classe descendente → classe que herda de uma subclasse.
Polimorfismo
- Quando tenho classes herdadas que possuem métodos com mesma assinatura (sobrescrita ou por sobrecarga) mas com comportamentos diferentes (métodos polimórficos).
Casting
- uma classe filho pode ser instanciada com o tipo da do pai, contudo se precisar de um método especifico da do filho você precisa fazer o casting.
class Base{}
class Child extends Base{}
Base test = new Child();
(Child)test.method();