Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

08 Herencia

6,723 views

Published on

FactoriaJava.com - Desarrollo Java

Curso Desarrollo y Gestión de Aplicaciones Web con Tecnología Java

Tema 03 - Módulo 08 - Herencia

Published in: Technology

08 Herencia

  1. 1. MÓDULO 3<br />INTRODUCCIÓN A JAVA<br />3.8 HERENCIA<br />40 HORAS<br />Jesús Muñoz<br />jesus@iluego.com<br />
  2. 2. Contenidos tema 3 – Introducción a Java<br />Comenzamos<br />Bases del lenguaje Java<br />Programación Orientada a Objetos (OOP)<br />Clases y objetos<br />Creando clases<br />Paquetes y java classpath<br />Javabeans<br />Herencia<br />Clases abstractas e interfaces<br />Polimorfismo<br />Clases internas<br />Excepciones<br />Logging<br />Networking<br />2<br />
  3. 3. 3<br />Contenidos de este tema<br />Clases y objetos<br />Qué es la herencia en java<br />La clase Object<br />La llamada a super()<br />Sobreescritura de métodos<br />Polimorfismo<br />Modificador “final”<br />
  4. 4. 4<br />Contenidos de este tema<br />Clases y objetos<br />Qué es la herencia en java<br />La clase Object<br />La llamada a super()<br />Sobreescritura de métodos<br />Polimorfismo<br />Modificador “final”<br />
  5. 5. 5<br />Qué es la herencia en java<br />Herencia es el concepto de una clase hijo (subclase) que automáticamente hereda las variables y los métodos definidos en la clase padre (superclase).<br />La herencia es, junto con la encapsulación y el polimorfismo, una de las 3 características importantes de Java<br />
  6. 6. 6<br />Qué es la herencia en java<br />Los beneficios de la herencia en OOP: reusabilidad<br />Una vez que el método ha sido definido en la superclase, éste es heredado automáticamente por las subclases<br />De esta manera el método sólo se escribe una vez y no una vez por cada subclase<br />Una clase y sus hijas comparten un conjunto común de propiedades<br />Una subclase sólo necesita implementar los aspectos específicos de las subclases<br />
  7. 7. 7<br />Qué es la herencia en java<br />public class Person {<br />protected String name;<br />protected String address;<br />/**<br />* Default constructor<br />*/<br />public Person(){<br />System.out.println(“Inside Person:Constructor”);<br />name = ""; address = "";<br />}<br />. . . .<br />}<br />public class Student extends Person {<br />public Student(){<br />System.out.println(“Inside Student:Constructor”);<br />}<br />. . . .<br />}<br />
  8. 8. 8<br />Qué es la herencia en java<br />Una subclase hereda todo lo public y lo protected (propiedades o métodos) de su padre, sin importar en qué paquete está la subclase.<br />Si la subclase está en el mismo paquete que el padre, entonces también hereda lo private-package del padre<br />
  9. 9. 9<br />Qué es la herencia en java<br />Una subclase hereda todo lo public y lo protected (propiedades o métodos) de su padre, sin importar en qué paquete está la subclase.<br />Si la subclase está en el mismo paquete que el padre, entonces también hereda lo private-package del padre<br />Los campos heredados pueden ser usados directamente, como cualquier otro campo<br />Se pueden declarar nuevas propiedades en la subclase<br />Se puede declarar un campo en la subclase con el mismo nombre que en la superclase, pero no es recomendable<br />Una subclase no hereda los miembros privados de su superclase. Sin embargo, si la superclase tiene métodos public o protected para acceder sus propiedades privadas, éstos también puede usarse<br />
  10. 10. 10<br />Qué es la herencia en java<br />Una subclase hereda todo lo public y lo protected (propiedades o métodos) de su padre, sin importar en<br />Los métodos heredados pueden ser usados directamente.<br />Se puede escribir un nuevo método en la instancia de la subclase que tenga la misma definición que el de la superclase. A esto lo llamamos SOBREESCRITURA (overriding)<br />Se puede escribir un nuevo método estático en la subclase que tenga la misma definición que el de la superclase, lo cual nos lleva a ocultación.<br />Se pueden declarar nuevos métodos en la subclase que no estén presentes en la superclase<br />
  11. 11. 11<br />Qué es la herencia en java<br />Para aclarar conceptos:<br /><ul><li>Superclase (clase padre)
  12. 12. Subclase (clase hijo)</li></li></ul><li>12<br />Contenidos de este tema<br />Clases y objetos<br />Qué es la herencia en java<br />La clase Object<br />La llamada a super()<br />Sobreescritura de métodos<br />Polimorfismo<br />Modificador “final”<br />
  13. 13. 13<br />La clase OBJECT<br />En Java todas las clases usan herencia directa o indirectamente<br />La clase Object es la superclase primera, es la única que no tiene superclase<br />
  14. 14. 14<br />La clase OBJECT<br />Un ejemplo simple de herencia de clases:<br />
  15. 15. 15<br />Contenidos de este tema<br />Clases y objetos<br />Qué es la herencia en java<br />La clase Object<br />La llamada a super()<br />Sobreescritura de métodos<br />Polimorfismo<br />Modificador “final”<br />
  16. 16. 16<br />La llamada a SUPER()<br />Una subclase puede llamar explícitamente a su constructor inmediatamente superior:<br />Esto es hecho invocando al constructor<br />Una llamada super del constructor en el constructor de una subclase resultará en la ejecución del constructor de la superclase, basado en los argumentos pasados. Resumiendo este punto: que la lógica impera.<br />public Student(){4<br />super( "SomeName", "SomeAddress" );<br />System.out.println("Inside Student:Constructor");<br />}<br />
  17. 17. 17<br />La llamada a SUPER()<br />Cosas a recordar sobre super()<br />La llamada a super() debe ser la primera del constructor<br />Y sólo puede usarse en un constructor, no en otros métodos<br />
  18. 18. 18<br />Contenidos de este tema<br />Clases y objetos<br />Qué es la herencia en java<br />La clase Object<br />La llamada a super()<br />Sobreescritura de métodos<br />Polimorfismo<br />Modificador “final”<br />
  19. 19. 19<br />Sobreescritura de métodos<br />Cosas a recordar sobre super()<br />La llamada a super() debe ser la primera del constructor<br />Y sólo puede usarse en un constructor, no en otros métodos<br />
  20. 20. 20<br />Contenidos de este tema<br />Clases y objetos<br />Qué es la herencia en java<br />La clase Object<br />La llamada a super()<br />Sobreescritura de métodos<br />Polimorfismo<br />Modificador “final”<br />
  21. 21. 21<br />Polimorfismo<br />Es la habilidad de hacer referencia a una variable para cambiar el tipo de dato dentro de una jerarquía<br />Esto permite a objetos de distintas subclases ser tratados como objetos de una sola superclase, de tal forma que al llamar a los métodos se llama a los propios de cada subclase.<br />Hablaremos más de polimorfismo…<br />
  22. 22. 22<br />Polimorfismo<br />Person person2 = new Student();<br />person2.myMethod("test4");<br />Person person3 = new InternationalStudent();<br />person3.myMethod("test5");<br />myMethod(test4) in Student class is called<br />myMethod(test5) in InternationalStudent class is called<br />
  23. 23. 23<br />Contenidos de este tema<br />Clases y objetos<br />Qué es la herencia en java<br />La clase Object<br />La llamada a super()<br />Sobreescritura de métodos<br />Polimorfismo<br />Modificador “final”<br />
  24. 24. 24<br />Modificador FINAL<br />Clases FINAL:<br />Métodos no pueden ser extendidos<br />Métodos no pueden ser sobreescritos u ocultados (hidden)<br />Por ejemplo, no se puede extender de String porque ésta es una función FINAL<br />public final ClassName{<br />. . .<br />}<br />
  25. 25. Es importante que recordeis…<br />“Si haces todos los días lo mismo no llegarás más lejos de lo que otras veces has llegado”<br />Adelante!!!<br />Jesús Muñoz<br />jesus@iluego.com<br />

×