Este artículo explica cómo la herencia de Java tiene una relación "IS-A" entre superclase y subclases, lo que permite que las subclases hereden y personalicen la funcionalidad de la superclase. Al usar el polimorfismo, las subclases pueden definir comportamientos únicos, permitiendo la reutilización del código y la flexibilidad en la programación orientada a objetos.
En Java, la relación entre las súper clases (clase matriz) y las subclases (clase infantil o clase derivada) en herencia es una relación IS-A que implica que la subclase es una versión especializada de la superclase que hereda la funcionalidad (las restricciones pueden ser aplicado) de una clase que se deriva de (CSU Global, n.d). En otras palabras, si la clase B hereda de la clase A, entonces la clase B "es un" tipo de clase A. Esta relación permite que la Clase B use todas las funcionalidades (las restricciones se pueden aplicar) proporcionadas por la Clase A, al tiempo que agrega la suya propia Funcionalidades específicas o/y al anular algunas o todas las funcionalidades de la clase A. La capacidad de la clase infantil para anular la funcionalidad es una forma de polimorfismo.
“La definición del diccionario de polimorfismo se refiere a un principio en biología en el que un organismo o especie puede tener muchas formas o etapas diferentes. Este principio también se puede aplicar a la programación orientada a objetos y los idiomas como el lenguaje Java. Las subclases de una clase pueden definir sus propios comportamientos únicos y, sin embargo, compartir algunas de la misma funcionalidad de la clase principal ”(los tutoriales Java ™, n.d.) Esto es especialmente beneficioso cuando se trata de múltiples objetos de diferentes subclases que comparten un tipo de superclase común.
Por ejemplo: perros, gatos y búhos son animales:
superclass
public class Animal { public void makeSound() { System.out.println("Makes a Sound"); } }
subclase de animales
public class Domesticated extends Animal { public void friendly() { System.out.println("This animal is friendly."); } }
subclase de Domestaded
public class Undomesticated extends Animal { public void notFriendly() { System.out.println("This animal is not friendly."); } }
subclase de Domestaded
public class Cat extends Domesticated { @Override public void makeSound() { System.out.println("Meow"); } }
subclase de no domesticado
public class Owl extends Undomesticated { @Override public void makeSound() { System.out.println("Hoots"); } }
clase principal para producir el 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: Los métodos Makeound () en las clases de perro y gato anulan el método Makeound () en la clase Animal.
Además, la clase de perro es una subclase de la clase domesticada que es una subclase de la clase animal.
hijo de ‘→’
En Java, una subclase solo puede tener una superclase, por ejemplo, la clase de perros no puede tener una superclase domesticada y un animal de superclase, no está permitido lo siguiente.
En otras palabras, una subclase solo puede tener una superclase, ... y no se les permite tener múltiples padres, abuelos o bisabuelos.
En conclusión, la herencia de Java permite que las subclases utilicen y extiendan la funcionalidad de las superclases, que encarnan la relación "IS-A" y facilitan el polimorfismo. Esto mejora la reutilización del código, la flexibilidad y la consistencia al permitir comportamientos específicos en subclases mientras se mantiene las características compartidas en una superclase común.
referencias:
cus Global (n.d.). Módulo 1: Trabajar con herencia [conferencia interactiva]. En Colorado State University Global, CSC372: Programación II, Departamento de Ciencias de la Computación. Lienzo. Recuperado el 8 de junio de 2024, de https://csuglobal.instructura.com/courses/94948/pages/module-1-overview?module_item_id=4868813ile&&&]
Los tutoriales Java ™ (n.d.). Aprendiendo el idioma Java: interfaces y herencia. Oráculo. Recuperado el 8 de junio de 2024, fromhttps: //docs.oracle.com/javase/tutorial/java/iandi/polymorphism.html
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3