Lección 6: Programación Orientada a Objetos (POO) - Parte 2

Herencia y Clases Derivadas

La herencia es un concepto importante en POO que te permite crear una nueva clase basada en una clase existente. La nueva clase se llama "clase derivada" o "subclase", y hereda atributos y métodos de la clase base o "superclase". Aquí hay un ejemplo:

        
public class Animal {
    void emitirSonido() {
        System.out.println("Animal emitiendo sonido");
    }
}

public class Perro extends Animal {
    @Override
    void emitirSonido() {
        System.out.println("El perro ladra");
    }
}

public class Main {
    public static void main(String[] args) {
        Perro miPerro = new Perro();
        miPerro.emitirSonido();
    }
}
        
    

Polimorfismo e Interfaces

El polimorfismo te permite tratar objetos de diferentes clases de manera uniforme. Las interfaces son un mecanismo para lograr polimorfismo en Java. Aquí hay un ejemplo:

        
interface Figura {
    double calcularArea();
}

class Circulo implements Figura {
    double radio;
    
    Circulo(double r) {
        radio = r;
    }
    
    @Override
    public double calcularArea() {
        return Math.PI * radio * radio;
    }
}

class Rectangulo implements Figura {
    double base;
    double altura;
    
    Rectangulo(double b, double a) {
        base = b;
        altura = a;
    }
    
    @Override
    public double calcularArea() {
        return base * altura;
    }
}

public class Main {
    public static void main(String[] args) {
        Figura figura1 = new Circulo(5);
        Figura figura2 = new Rectangulo(4, 6);
        
        System.out.println("Área del círculo: " + figura1.calcularArea());
        System.out.println("Área del rectángulo: " + figura2.calcularArea());
    }
}
        
    

Organización en Paquetes

Los paquetes son una forma de organizar y agrupar clases relacionadas en Java. Puedes definir tus propios paquetes y estructurar tu código de manera más ordenada:

        
package com.miempresa.miproyecto;

public class MiClase {
    // Código de la clase
}
        
    

Con esto, has completado la Lección 6 y tienes una comprensión sólida de conceptos avanzados de la Programación Orientada a Objetos (POO) en Java, incluyendo herencia, polimorfismo, interfaces y organización en paquetes.