Este artigo explica como a herança de Java tem um relacionamento "IS-A" entre superclasses e subclasses, permitindo que as subclasses herdem e personalizem a funcionalidade da superclasse. Ao usar o polimorfismo, as subclasses podem definir comportamentos únicos, permitindo a reutilização e flexibilidade do código na programação orientada a objetos.
em Java, a relação entre super classes (classe pai) e subclasses (classe infantil ou classe derivada) em herança é um relacionamento IS-A que implica que a subclasse é uma versão especializada da superclasse herdando a funcionalidade (as restrições podem ser aplicado) de uma classe da qual é derivada (CSU Global, n.d). Em outras palavras, se a classe B herda da classe A, então a classe B “é um” tipo de classe A. Esse relacionamento permite que a classe B use todas as funcionalidades (restrições podem ser aplicadas) fornecidas pela classe A, além de adicionar seu próprio funcionalidades específicas ou/e ao substituir algumas ou todas as funcionalidades da classe A. A capacidade da classe infantil de substituir a funcionalidade é uma forma de polimorfismo.
“A definição de polimorfismo do dicionário refere -se a um princípio na biologia na qual um organismo ou espécie pode ter muitas formas ou estágios diferentes. Esse princípio também pode ser aplicado a programação e idiomas orientados a objetos, como o idioma Java. As subclasses de uma classe podem definir seus próprios comportamentos únicos e, no entanto, compartilhar algumas das mesmas funcionalidades da classe pai ”(The Java ™ Tutorials, N.D.) Isso é especialmente benéfico ao lidar com vários objetos de diferentes subclasses que compartilham um tipo de superclasse comum.
por exemplo: cães, gatos e corujas são animais:
superclass
public class Animal { public void makeSound() { System.out.println("Makes a Sound"); } }
subclasse de animais
public class Domesticated extends Animal { public void friendly() { System.out.println("This animal is friendly."); } }
subclasse de domesticado
public class Undomesticated extends Animal { public void notFriendly() { System.out.println("This animal is not friendly."); } }
subclasse de domesticado
public class Cat extends Domesticated { @Override public void makeSound() { System.out.println("Meow"); } }
subclasse de não domesticado
public class Owl extends Undomesticated { @Override public void makeSound() { System.out.println("Hoots"); } }
classe principal para gerar o resultado
public class inheritanceExample { public static void main(String[] args) { Dog myDog = new Dog(); Cat myCat = new Cat(); Owl redOwl = new Owl(); System.out.println("MY Dog:"); myDog.makeSound(); // Outputs: Bark myDog.friendly(); // Outputs: This animal is friendly. System.out.println(); System.out.println("My Cat:"); myCat.makeSound(); // Outputs: Meow myCat.friendly(); // Outputs: This animal is friendly. System.out.println(); System.out.println("Red Owl:"); redOwl.makeSound(); // Outputs: Hoot redOwl.notFriendly(); // Outputs: This animal is not friendly. } }
Nota: Os métodos makeound () nas classes de cães e gatos substituem o método makeound () na classe de animais.
Além disso, a classe de cães é uma subclasse da classe domesticada, que é uma subclasse da classe de animais.
filho de '→'
Em Java, uma subclasse pode ter apenas uma superclasse, por exemplo, a classe de cães não pode ter uma superclasse domesticada e um animal de superclasse, o seguinte não é permitido.
Em outras palavras, uma subclasse pode ter apenas uma superclasse,… e eles não têm permissão para ter vários pais, avós ou bisavós.
Em conclusão, a herança de Java permite que as subclasses utilizem e estendam a funcionalidade das superclasses, incorporando o relacionamento "IS-A" e facilitando o polimorfismo. Isso aprimora a reutilização, flexibilidade e consistência do código, permitindo comportamentos específicos em subclasses, mantendo características compartilhadas em uma superclasse comum.
REFERÊNCIAS:
cus global (n.d.). Módulo 1: Trabalhando com herança [palestra interativa]. Em Colorado State University Global, CSC372: Programming II, Departamento de Ciência da Computação. Tela. Recuperado em 8 de junho de 2024, em https://csuglobal.instructure.com/courses/94948/pages/module-1-overview?module_item_id=4868813
Os tutoriais Java ™ (n.d.). Aprendendo a língua Java: interfaces e herança. Oráculo. Recuperado em 8 de junho de 2024, fromhttps: //docs.oracle.com/javase/tutorial/java/iandi/polymorphism.html
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3