Java A herança é um conceito fundamental da programação orientada a objetos que permite que uma nova classe herde propriedades e comportamentos (campos e métodos) de uma classe existente. Isso promove a reutilização do código e estabelece uma relação hierárquica entre as classes.
Conceitos-chave
Superclasse (classe pai): A classe cujas propriedades e métodos são herdados.
Subclasse (classe filha): A classe que herda da superclasse.
Uso
A herança é usada para criar uma nova classe que é um tipo de uma classe existente. Ele ajuda a ampliar a funcionalidade de uma classe sem modificá-la, aderindo assim ao princípio aberto/fechado do design de software.
Sintaxe
classSuperclass{// fields and methods}classSubclassextendsSuperclass{// additional fields and methods}Tecnologia
Exemplos
Exemplo 1: Herança básica
classAnimal{voideat(){System.out.println("This animal eats food.");}}classDogextendsAnimal{voidbark(){System.out.println("The dog barks.");}}publicclassInheritanceExample{publicstaticvoidmain(String[] args){Dog dog =newDog();
dog.eat();// Inherited method
dog.bark();// Subclass method}}Tecnologia
Neste exemplo, Dog é uma subclasse que herda o método eat da superclasse Animal. A classe Dog também tem seu próprio método, bark.
Exemplo 2: Substituição de métodos
classVehicle{voidrun(){System.out.println("The vehicle is running.");}}classCarextendsVehicle{@Overridevoidrun(){System.out.println("The car is running safely.");}}publicclassMethodOverridingExample{publicstaticvoidmain(String[] args){Car car =newCar();
car.run();// Overridden method}}Tecnologia
Aqui, a classe Car substitui o método run da classe Vehicle para fornecer uma implementação específica.
Exemplo 3: Usando super Keyword
classPerson{String name ="John";voiddisplay(){System.out.println("Person's name: "+ name);}}classEmployeeextendsPerson{String name ="Doe";voiddisplay(){System.out.println("Employee's name: "+ name);super.display();// Call superclass method}}publicclassSuperKeywordExample{publicstaticvoidmain(String[] args){Employee emp =newEmployee();
emp.display();}}Tecnologia
Neste exemplo, a palavra-chave super é usada para chamar o método display da superclasse Person a partir da subclasse Employee.
Dicas e práticas recomendadas
Use a herança de forma criteriosa: Use a herança somente quando houver uma verdadeira relação "é um". Por exemplo, um Dog é um Animal.
Evite hierarquias de herança profunda: Mantenha as hierarquias de herança rasas para manter a simplicidade e reduzir a complexidade.
Prefira a composição à herança: Considere o uso de composição (relação has-a) em vez de herança quando apropriado, pois ela oferece mais flexibilidade.
Use @Override Annotation: Sempre use a anotação @Override ao substituir métodos para melhorar a legibilidade do código e evitar erros.
Controle de acesso: Use o modificador de acesso protected para membros da superclasse que devem ser acessíveis nas subclasses, mas não para o mundo externo.
Java A herança é um conceito fundamental da programação orientada a objetos que permite que uma nova classe herde propriedades e comportamentos (campos e métodos) de uma classe existente. Isso promove a reutilização do código e estabelece uma relação hierárquica entre as classes.
Conceitos-chave
Uso
A herança é usada para criar uma nova classe que é um tipo de uma classe existente. Ele ajuda a ampliar a funcionalidade de uma classe sem modificá-la, aderindo assim ao princípio aberto/fechado do design de software.
Sintaxe
Exemplos
Exemplo 1: Herança básica
Neste exemplo,
Dogé uma subclasse que herda o métodoeatda superclasseAnimal. A classeDogtambém tem seu próprio método,bark.Exemplo 2: Substituição de métodos
Aqui, a classe
Carsubstitui o métodorunda classeVehiclepara fornecer uma implementação específica.Exemplo 3: Usando
superKeywordNeste exemplo, a palavra-chave
superé usada para chamar o métododisplayda superclassePersona partir da subclasseEmployee.Dicas e práticas recomendadas
Dogé umAnimal.@OverrideAnnotation: Sempre use a anotação@Overrideao substituir métodos para melhorar a legibilidade do código e evitar erros.protectedpara membros da superclasse que devem ser acessíveis nas subclasses, mas não para o mundo externo.