U10-02-Clases en Java – Interfaces II

En Java, un interface puede contener tanto métodos como constantes. Estos métodos y constantes pueden ser estáticos o por defecto (default) dependiendo de la versión de Java que estés utilizando.

Atributos estáticos: Los interface en Java no pueden contener atributos (variables) estáticos. Solo pueden tener constantes, las cuales se definen automáticamente como estáticas y finales.

Métodos estáticos: Desde Java 8 en adelante, los interface pueden contener métodos estáticos, los cuales están definidos con la palabra clave static. Estos métodos son implementaciones estáticas que están asociadas al interface en sí, no a las implementaciones de clases que lo implementen.

Métodos por defecto: Desde Java 8, los interface pueden contener métodos por defecto (default methods), los cuales están definidos con la palabra clave default. Estos métodos proporcionan una implementación por defecto que las clases que implementen el interface pueden utilizar. Esto permite agregar funcionalidades a los interface sin necesidad de romper la compatibilidad con las implementaciones anteriores.

public class E00_00 {

	public static void main(String[] args) {
		
		Perro p=new Perro();
		p.voz();
		p.nombre="Sam";
		p.dormir();
		
		Gato g=new Gato();
		g.dormir();
		
		Sonido.bostezo();
		
		Sonido s=new Sonido() {
			public void voz() {
				System.out.println("sonido de anonimo");
			}
		};
		
		s.voz();
		
		System.out.println(p.getClass().getName());
		System.out.println(s.getClass().getName());

	}
}

interface Sonido{
	int version=1;
	void voz();
	
	default void dormir(){
		System.out.println("zzzz");
	}
	
	static void bostezo() {
		System.out.println("uuuuuu");
	}
	
}

class Animal{
	String nombre;
}

class Perro extends Animal implements Sonido{

	@Override
	public void voz() {
		System.out.println("guau");
	}
}

class Gato extends Animal implements Sonido{

	@Override
	public void voz() {
		System.out.println("miau");
	}
	public void dormir() {
		System.out.println("miauzzzzzz");
	}
}

class Merluza extends Animal{
	
}

Related Posts