"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Herencia y polimorfismo en Java: uso de superclases y subclases

Herencia y polimorfismo en Java: uso de superclases y subclases

Publicado el 2025-02-06
Navegar:984

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 ‘→’
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

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.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

En otras palabras, una subclase solo puede tener una superclase, ... y no se les permite tener múltiples padres, abuelos o bisabuelos.
Inheritance and Polymorphism in Java: Using Superclasses and Subclasses

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


Publicado originalmente en Alex.omegapy on Medium publicado por Level Up Coding el 1 de noviembre de 2024.

Declaración de liberación Este artículo se reproduce en: https://dev.to/alex_ricciardi/inheritance-andpolymorphism-in-java-using-superclassesses-and-subclasses-12Jn?1 Si hay alguna infracción, comuníquese con Study_golang@163 .com .Com .Com. borrar
Último tutorial Más>

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