En java las clases pueden tener clases derivadas o dicho de otra manera una clase puede extender a otra.
La clase derivada o hija HEREDA todas las propiedades de la clase madre.
package com.trifulcas.herencia; public class Animal { private String nombre; private int patas; /** * @return the nombre */ public String getNombre() { return nombre; } /** * @param nombre the nombre to set */ public void setNombre(String nombre) { this.nombre = nombre; } /** * @return the patas */ public int getPatas() { return patas; } /** * @param patas the patas to set */ public void setPatas(int patas) { this.patas = patas; } public void hacerRuido() { System.out.println("Grrr"); } }
package com.trifulcas.herencia; public class Mamifero extends Animal { private int mesesLactancia; /** * @return the mesesLactancia */ public int getMesesLactancia() { return mesesLactancia; } /** * @param mesesLactancia the mesesLactancia to set */ public void setMesesLactancia(int mesesLactancia) { this.mesesLactancia = mesesLactancia; } }
package com.trifulcas.herencia; public class Insecto extends Animal { }
package com.trifulcas.herencia; public class Perro extends Mamifero { private String raza; /** * @return the raza */ public String getRaza() { return raza; } /** * @param raza the raza to set */ public void setRaza(String raza) { this.raza = raza; } }
Animal prueba=new Animal(); prueba.setNombre("Bicho"); prueba.setPatas(18); // Mamifero extiende la clase animal // Y por lo tanto HEREDA todas sus propiedades y métodos Perro michucho=new Perro(); // toString lo hereda de Object System.out.println(michucho.toString()); // setNombre lo hereda de animal michucho.setNombre("firulai"); // setMeseslactancia de mamifero michucho.setMesesLactancia(8); // setRaza de Perro michucho.setRaza("Bulldog"); /* * ANIMAL * * MAMIfERO * * PERRO Hereda todas las propiedades de mamifero y animal * */