La herencia es uno de los conceptos más importantes del paradigma de Objetos. Vamos a crear las primeras clases, descubrir el concepto de herencia y, de paso, aprender lo básico de UML para diseñar.

Actividad

Usando UML armá un diagrama de clasese con 4 clases, que cumplan las siguientes condiciones:

  • Una clase Producto abstracta, que contiene los siguientes atributos:
    • nombre
    • precio
    • marca
  • Una clase Remera que hereda de Producto y tiene los siguientes atributos:
    • talle
    • color
  • Una clase Zapatilla que hereda de Producto y tiene los siguientes atributos:
    • talleEuropa
    • talleEstadosUnidos
    • modelo
  • Una clase Pantalon que hereda de Producto y tiene los siguientes atributos:
    • talle
    • material

Una vez que tengas el diagrama de clases, codificá las 4 clases en tu proyecto. Sobreescribí el método toString() de cada clase, de manera que imprima en 1 línea un detalle del producto con todos sus atributos.

Para terminar, creá un método main() que instancie 1 objeto de cada Producto, asigná cada Producto a una variable diferente, e imprimí cada Producto por consola. Por ejemplo, al ejecutar el main() deberías ver en consola:

Remera Rusty "Long Beach", talle XL color negro, a $150.
Zapatilla Adidas "Runner" talle 11 (US) / 44 (Eur) a $2100.
Pantalon Billabong "regular slim" talle 36, de denim oscuro, a $1460.

Consejos

  • Usá lapiz y papel para armar el diagrama UML. ¡Importante ser prolijo!
  • Usá la característica de formateo de código de NetBeans para mantener prolijo tu código (click derecho en el código de la clase > Format).
  • Hacé que los atributos de las clases sean private.
  • Creá métodos setter y getter para cada atributo (en NetBeans, click derecho en el código de la clase > Insert code > Getter and Setter)
  • Ubicá las clases dentro de un paquete (cada clase debería empezar con package com.dosideas.cursos o similar)

Preguntas

  1.  ¿Qué es UML?
    1. ¿Para qué sirve?
    2. ¿Qué es un diagrama de clases y para qué sirve?
  2. ¿Qué es la herencia en objetos y para qué sirve?
  3. ¿Qué elementos se heredan de una clase?
  4. ¿Qué hace el extends en Java?
  5. ¿Qué es la anotación @Overrides?
  6. ¿Qué es el método toString()?
  7. ¿Qué significa que un atributo sea private?
  8. ¿Para que sirve el new en Java?