CLASES ABSTRACTAS Una clase abstracta es DEFINICION
INTERFACES Y HERENCIA MULTIPLE Una interface puede ser DEFINICION
PROGRAMAS.- 1.-En el primer programa toma dos figuras geomtricas, el Circulo y el rectngulo, para el ejemplo as slo considera dos caractersticas similares: X y Y, por lo que podemos crear una sper clase Figura con estas dos caractersticas, adems el mtodo Area() que devolver el rea Podemos decir que las interfaces simulan la herencia mltiple ya que una clase puede implementar cualquier nmero de interfaces Es en donde una clase puede heredar los atributos de otras dos superclases. Este mtodo puede utilizarse para agrupar atributos y mtodos desde varias clases dentro de una sola. HERENCIA MULTIPLE de la Figura. Pero, se presenta un problema, el clculo del rea del rectngulo es diferente al clculo del rea del crculo. Por lo tanto, el mtodo Area() deber ser abstracto, por lo cual, la clase Figura tambin deber ser abstracta. import java.util.*; public abstract class figura { //abstracion protected double x;//declaracion de variables protected double y; public figura (double x, double y) { this.x = x; this.y = y; } public abstract double area (); } public class Circulo extends figura { private double radio; public Circulo (double x, double y, double radio) { super(x,y); this.radio = radio; } public double area () { return Math.PI*radio*radio; } } public class Cuadrado extends figura { private double lado; public Cuadrado (double x, double y, double lado) { super(x,y); this.lado = lado; } public double area () { return lado*lado; } } public class Figura { public static void main(String[] args) { Circulo c=new Circulo(4.2,3.0,3.6); //INASTANCIACION System.out.println("***FIGURAS GEOMETRICAS***");//MENSAJE System.out.println("circulo"); System.out.println("AREA DEL RECTANGULO \n "+c.area());//LLAMADO DE LA FUNCION System.out.println("cuadrado"); Cuadrado cu=new Cuadrado(4.2,3.0,3.6); System.out.println("CUADRADO \n ="+cu.area());//LLAMADO DE LA FUNCION } }
2.- En el siguiente ejemplo, toma a los Instrumentos musicales, ya que se sabe que todos los instrumentos son tocados y afinados por ejemplo a un bajo se lo afina y se lo toca Entonces creamos una interfaz Instrumento musical con los mtodos tocar(), afinar(). Ahora crearemos unas clases de instrumentos de viento e instrumentos de cuerda para que en instrumentos de cuerda e instrumentos de viento se pueda que implemente la interfaz INSTRUMENTOS MUSICALES
interface InstrumentoMusical {//interfas principal de esta se a heredar las otras subcalces void tocar();//metdos a utlizar void afinar();//metdos a utilizar String tipoInstrumento ();// } class InstrumentoViento implements InstrumentoMusical {//clase heredad instrumento de viento public void tocar() {//metodo tocar System.out.println("Tocar instrumento de viento");//mensaje de respuesta } public void afinar() {//metdo afinar System.out.println("Afinar instrumento de viento");//mensaje de respuesta } public String tipoInstrumento() {////metodo return "Descripcion: Instrumento de viento";//mensaje } } class InstrumentoCuerda implements InstrumentoMusical {//sub clase heredada public void tocar() {//metodo System.out.println("Tocando instrumento de cuerda");//mensaje } public void afinar() {//metdo System.out.println("Afinando instrumento de cuerda");//mensaje } public String tipoInstrumento() {//metodo return "Descripcion: Instrumento de cuerda";//mensaje } }//fin de la clase class ejemploInterface2 {//interface dos static void ManejoInstrumento(InstrumentoMusical f) {//metodo System.out.println(f.tipoInstrumento());//mensaje de metodo f.afinar();//llamando a metodo afinar f.tocar();//llamando a metodo tocar } } public class ins { public static void main(String[] args) { InstrumentoMusical guitarra = new InstrumentoCuerda();//instanciando clase padre e hijo InstrumentoMusical trompeta = new InstrumentoViento();//instanciando clase padre e hijo
System.out.println("INSTRUMENTO DE CUERDA BAJO"); //InstrumentoMusical im = new InstrumentoMusical(); guitarra.afinar();//llamando a metodo afinar guitarra.tocar();///llamando metdo tocar //d.tipoInstrumento();//llamando al metodo System.out.println("INSTRUMENTO DE VIENTO saxofon"); trompeta.afinar();//metdo afinar vientO trompeta.tipoInstrumento(); trompeta.tocar();
} }
EJEMPLO 2 DE INTERFACES
El siguiente programa tiene objetivo claro mostrar lo que es la herencia mltiple ya que en java no existe la herencia mltiple sino interfaces por que la interfaz Figura Geomtrica es de donde se va a subdividir las clases como: circulo, triangulo y cuadrado y por ende el clculo de sus reas.
package Metodosuma;
interface FiguraGeometrica {///////interfaz principal de esta se va a heredar o implementar en las otras subclases void area();////metodo area } class Cuadrado implements FiguraGeometrica{////la clase cuadrado se implementa de la interfaz figurageometrica int lado;////declaracion de variables public Cuadrado (int lado) {////metodo cuadrado ////constructor this.lado = lado;////hace referencia al metodo } public void area (){///metodo area System.out.println("El area del cuadrado es "+(lado*lado));//////claculo del lado } } class Circulo implements FiguraGeometrica{////la clase circulo se implementa de la interfaz figurageometrica int radio;////declaracion de variables public Circulo (int radio) {/////metodo circulo ////constructor this.radio = radio;////hace referencia al metodo } public void area () {/////metodo area del circulo System.out.println("El area del crculo es " + (2*Math.PI*(radio*radio)));///claculo e impresion de area del circulo } } class Triangulo implements FiguraGeometrica{///la clase triangulo se implementa de la clase figura geometrica int base, altura;////declaracion de variables public Triangulo (int base, int altura) {///metodo triangulo //constructor this.base=base;////hace referencia al metodo this.altura=altura;////hace referencia al metodo } public void area () {////metodo que se utiliza en el area del triangulo System.out.println("El area del triangulo es " + (base*altura)/2); } } public class ejemplo {/////metodo static void dibujaArea(FiguraGeometrica f) { f.area(); } public static void main(String[] args) { FiguraGeometrica cuadrado = new Cuadrado(5);///instanciacion FiguraGeometrica circulo = new Circulo(4);///instanciacion FiguraGeometrica triangulo = new Triangulo(16,5);///instanciacion dibujaArea(cuadrado);////llamado de las clases dibujaArea(circulo);////llamado de las clases dibujaArea(triangulo);////llamado de las clases } }
Esta Es Una Pequeña Carta para Expresar Algunas Cosas Que Siento Por Ti y No Me Las Atrevía A Decírtelas Por Miedo A Que Me Rechaces y Destrozaras Mi Corazón