Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Herencia y Subclases en Java: Una Guía para Programadores, Apuntes de Programación Orientada a Objetos

Este documento proporciona una introducción clara y concisa a los conceptos de herencia y subclases en java. Explica cómo crear nuevas clases derivadas de clases existentes, extendiendo sus características y redefiniendo métodos. Se incluyen ejemplos prácticos para ilustrar los conceptos y se destaca la importancia de la sustitución de métodos y la jerarquía de clases en la programación orientada a objetos.

Tipo: Apuntes

2023/2024

Subido el 19/12/2024

jose-manuel-lopez-marrero-1
jose-manuel-lopez-marrero-1 🇪🇸

1 documento

1 / 6

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
HERENCIA EN JAVA
Herencia y subclases en Java
Zenón José Hernández Figueroa, José Daniel González Domínguez,
Juan Carlos Rodríguez del Pino, David Freire Obregón
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Herencia y Subclases en Java: Una Guía para Programadores y más Apuntes en PDF de Programación Orientada a Objetos solo en Docsity!

HERENCIA EN JAVA

Herencia y subclases en Java

Zenón José Hernández Figueroa, José Daniel González Domínguez,

Juan Carlos Rodríguez del Pino, David Freire Obregón

Contenido

  • Herencia......................................................................................................................................
  • Subclases.....................................................................................................................................
  • Sustitución de métodos
  • Jerarquía de clases y herencia......................................................................................................

Sustitución de métodos

La sustitución de métodos es un mecanismo que permite a una subclase proporcionar su propia implementación de un método ya implementado en alguna de las clases de las que hereda.

En Java, para sustituir un método, una subclase sólo necesita tener un método con el mismo nombre y parámetros (misma signatura) marcado con la etiqueta @Override, el cual oculta al correspondiente de la superclase:

class BaseClass { // Superclase public String message() { return "This is a message from BaseClass"; } } class ClassOne extends BaseClass { // Subclase @Override public String message() { return "This is a message from ClassOne"; } }

Cuando un objeto de la clase BaseClass llama al método message, se ejecuta el definido en BaseClass, pero si lo llama un objeto de tipo ClassOne, se ejecuta el definido en ClassOne. El método sustituido puede ser llamado desde un método de un objeto de tipo ClassOne usando el identificador super:

class ClassOne extends BaseClass { // Subclase @Override public String message() { return super.message() + " and then a message from ClassOne"; } }

En realidad, la sustitución funcionaría igualmente si no pusiésemos la etiqueta @Override; la ponemos para que el compilador nos avise si, por error, intentamos sustituir una signatura que no existe en la superclase, con lo que estaríamos definiendo un método distinto.

Jerarquía de clases y herencia

En Java, todas las clases heredan de forma implícita de una clase base común llamada Object. La clase Object define una serie de métodos con un comportamiento por omisión que puede ser sustituido (override) redefiniendo esos métodos en las clases derivadas. Además, una clase solo puede tener una superclase. En Java, si una clase tiene el modificador final, no pueden crearse subclases que hereden de ella.

final class NoInheritableClass {}

En Java, heredar de la clase base Object proporciona un conjunto de métodos que pueden ser sustituidos en las clases herederas para desarrollar comportamientos específicos:

protected Object clone() Crea y devuelve una copia del objeto this

boolean equals(Object obj) Indica si otro objeto es igual al objeto this

protected void finalize() Lo llama el garbage collector cuando no hay referencias al objeto this

Class<?> getClass() Devuelve la clase del objeto this

int hashCode() Devuelve un código de hash para el objeto this

String toString() Devuelve una representación en forma de string del objeto this

void notify()

Métodos relacionados con la ejecución multithreading (concurrencia)

void notifyAll()

void wait()