0% encontró este documento útil (0 votos)
135 vistas111 páginas

PPO Er

El documento presenta conceptos básicos de programación orientada a objetos como clases, objetos, atributos, métodos, encapsulación, herencia y paquetes. Explica cómo crear una clase simple con atributos y métodos, y cómo extender una clase existente para reutilizar y especializar el código.

Cargado por

Edson Ronald
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
135 vistas111 páginas

PPO Er

El documento presenta conceptos básicos de programación orientada a objetos como clases, objetos, atributos, métodos, encapsulación, herencia y paquetes. Explica cómo crear una clase simple con atributos y métodos, y cómo extender una clase existente para reutilizar y especializar el código.

Cargado por

Edson Ronald
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 111

PPO

ppo

< >
MATERIALES BASADOS EN EL TRAAJO DE DIFERENTES AUTORES:
M.Carmen Fernández Panadero, Raquel M. Crespo García
Carlos Delgado Kloos, Natividad Martínez Madrid

1
PPO

PPO

< >
MATERIALES BASADOS EN EL TRABAJO DE DIFERENTES AUTORES:
M.Carmen Fernández Panadero, Raquel M. Crespo García
Carlos Delgado Kloos, Natividad Martínez Madrid

2
3
Objetivos

• Definir los conceptos básicos de la


programación basada en objetos

– Clases, objetos

– Miembros (atributos, métodos)

– Abstracción y ocultación de información

• Describir relación entre objeto y clase

4
• Crear un objeto sencillo y modelar

– sus características (por medio de atributos)

– su comportamiento (por medio de métodos)

5
 Clases y objetos
 Encapsulación de objetos
 Abstracción funcional
 Abstracción de datos
 Miembros de una clase (atributos y métodos)
 Paso de mensajes
 Sobrecarga de métodos
 Constructores
 Modificadores y acceso

6
7
8
¿Qué es un objeto?

• Es una forma de agrupar un conjunto de


datos (estado) y de funcionalidad
(comportamiento) en un mismo bloque
de código que luego puede ser
referenciado desde otras partes de un
programa
• La clase a la que pertenece el objeto
puede considerarse como un nuevo tipo
de datos

9
Ejemplo

Clase Objetos

Estado

Constructor

Comportamiento

• this referencia al objeto de la clase actual

10
Ejercicio 1

• Implementa la clase Bicicleta, que tiene tres atributos,


velocidadActual, platoActual y piñonActual, de
tipo entero y cuatro métodos acelerar(), frenar(),
cambiarPlato(int plato), y cambiarPiñon(int
piñon), donde el primero dobla la velocidad actual, el segundo
reduce a la mitad la velocidad actual, y el tercero y cuarto ajustan el
plato y el piñón actual respectivamente según los parámetros
recibidos. La clase debe tener además un constructor que inicialice
todos los atributos.
• Crea dos objetos de la clase bicicleta: miBicicleta y
tuBicicleta

11
Encapsulación de objetos

• Encapsulación: describe la vinculación de un


comportamiento y un estado a un objeto en particular.

• Ocultación de información: Permite definir qué partes


del objeto son visibles (el interfaz público) que partes son
ocultas (privadas)

•La llave de contacto es un interfaz público del


mecanismo de arranque de un coche
•La implementación de cómo arranca realmente es
privada y sobre ella sólo puede actuar la llave de
contacto

12
El objeto puede cambiar y su interfaz pública ser compatible
con el original: esto facilita reutilización de código

13
14
15
16
17
Ejemplo

Clase Coche Clase Motor

Clase Rueda
Paso de
mensajes

18
19
20
21
Sobrecarga (Overloading)
¿Para qué sirve?

Clase Objetos

Sobrecarga

Son métodos distintos porque


aunque tengan el mismo nombre
tienen distintos arg umentos.
Tienen distinta fun cionalidad

22
Ejercicio2

• Sobre la claseBicicleta, implementa los


método sobrecargados cambiarPlato (), y
cambiarPiñon (), que no reciben argumentos y
que cambian el plato actual y el piñón actual a
un valor pordefecto,en concreto, 1.

23
24
Constructores

Array de objetos de la clase Coche

Sobrecarga de constructores

25
Ejercicio 3

• Sobre la claseBicicleta, implementa un


constructor adicional que no recibe parámetros
y que inicializa la velocidad actual a 0, y el
plato actual y el piñón actual a 1.

26
27
Modificadores y acceso
Static (miembros estáticos)

Atributo estático
Otros ejemplos

Atributo estático
=> -231
… => 231-1

Método estático:Tiene acceso a atributos estáticos


No necesitamos crear instancias

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html

28
Modificadores y acceso
Static. Algunas reglas

– Los miembros estáticos se invocan con:

NombreClase.metodoEstatico();
NombreClase.atributoEstatico;

– Para acceder a los miembros no estáticos necesitamos


disponer de una instancia (objeto) de la clase
NombreClase nombreObjeto = new NombreClase();

– Los miembros no estáticos se invocan con:

nombreObjeto.metodoNormal();
nombreObjeto.atributoNormal;

29
– Cuando invocación (llamada) a un miembro estático de la clase
se realiza dentro de la propia clase se puede omitir el nombre
de la misma. Es decir podemos escribir:
metodoEstatico(); en lugar NombreClase.metodoEstatico();
atributoEstatico; de: NombreClase.atributoEstatico;

30
Acceso
Métodosget() y set()

• Los atributos de una clase son generalmente privados para


evitar que puedan ser accesibles / modificables desde
cualquier otra clase.
• A veces nos interesa que algunas clases determinadas sí
puedan acceder a los atributos.
• Uso de métodos get() y set()

31
Ejercicio 4

• Sobre la clase Bicicleta, implementa los


métodos get() y set()necesarios para poder
acceder y modificar todos los atributos.

32
33
Paquetes

• Un paquete agrupa clases (e interfaces)


• Las jerarquías de un paquete se corresponden con las
jerarquías de directorios
• Para referirse a miembros y clases de un paquete se utiliza la
notación de separarlos por puntos.
– Ej: Cuando importamos paquetes de clases matemáticas

import java.math.BigDecimal;

– La clase BigDecimal está en el directorio java/math dentro del JDK


– No es necesario importar todas las clases: paquete java/lang
– String
– Integer
– NullPointerException
– ArrayIndexOutOfBoundsException

34
Paquetes

• ¿Cómo crear mis propios paquetes?


– Almaceno mis clases en un directorio con el nombre del paquete
– Pongo al principio de todas las clases que
pertenezcan al paquete la instrucción
package MiPropioPaquete;

– Si quiero importar las clases de ese paquete desde


otras clases y/o proyectos, pongo al principio de cada
clase

import MiPropioPaquete.Clase1

35
Programación de Sistemas

Programación ORIENTADA a Objetos

Julio Villena Román


<[email protected]
>
MATERIALESBASADOSEN EL TRABAJODE DIFERENTESAUTORES
:
M.CarmenFernández Panadero, Raquel M. Crespo García
Carlos Delgado
Kloos, Natividad Martínez Madrid

36
Escenario V:
Reutilizar código. Herencia

• Una vez que eres capaz de crear tus propias clases estás preparado para
trabajar en equipo y reutilizar código de tus compañeros. Tu equipo te
proporciona un conjunto de clases y te pide que crees especializaciones o
generalizaciones de las mismas
• Objetivo:
– Ser capaz de crear una clase derivada añadiendo algunas características
(atributos) y comportamiento (métodos) a una clase existente.
– Ser capaz de extraer todo el código común de un conjunto de clases similares
para agruparlo en una nueva clase padre para que sea más fácil de mantener.
– Ser capaz de crear objetos, y referenciar y acceder a sus atributos y
métodos dependiendo de su posición en la jerarquía de herencia y sus
modificadores

• Plan de trabajo:
– Memorizar la nomenclatura relacionada con herencia
– Memorizar la sintaxis de java relacionada con la herencia (extends), con la referencia
(super) y con modificadores de acceso avanzados (protected)
– Conocer mecanismos básicos de herencia como ocultación de atributos, sobreescritura
de métodos ,saber para qué sirven y cómo se usan

37
Con t en idos

► Conceptos básicos de herencia


► Jerarquía de herencia
► Reescritura I: Ocultación de atributos
► Reescritura II: Redefinición de métodos
► Constructores de clasesderivadas
► Polimorfismo
► El modificador final

38
Herencia
¿Qué es?¿Para qué sirve?
• Es un mecanismo para la reutilización de software

• Permite definir a partir de una clase otras clases


relacionadas que supongan una:

– Especialización (la clase Coche como especialización de


Vehículo)
• Escenario: Tenemos que desarrollar una nueva clase que se parece mucho a una que
tenemos pero necesita información (características y comportamiento) adicional.
• Solución (subclase, clase hija o clase derivada): Creamos una clase derivada y
añadimos nueva funcionalidad sin tener que reescribir el código común.

– Generalización (la clase Vehículo como generalización de


coche).
39
• Escenario: Tenemos un conjunto numeroso de clases muy similares con código
que se repite y es difícil de actualizar y mantener (ejemplo hay que añadir una letra
al número de serie)
• Solución (superclase, clase padre o clase base): Movemos el código que se
repite a un único sitio

40
41
42
Herencia
Declaración de clases derivadas

• La sintaxis para declarar clases derivadas es:


class ClaseDerivada extends ClaseBase { ... }

public class Persona { ... }


Persona public class Alumno extends Persona { ... }
public class Empleado extends Persona { ... }
public class Profesor extends Empleado { ... }
Alumno Empleado
public class Bedel extends Empleado { ... }

Profesor Bedel

43
44
Herencia
¿ Cómo se usa? Ej.: Persona.java

• protected accesible
desde las subclases

45
Herencia
¿ Cómo se usa? Ej.: Alumno.java

• super acceder a
atributos o métodos de
la superclase

[email protected] 2010

46
Herencia
¿ Cómo se usa? Ej.: Prueba.java

Salida por pantalla

47
Herencia
¿ Qué pasa si…
?

• Defino el atributo
nombrede Personacomoprivate.
• Se hereda, pero no podemos acceder a él, salvo que
implementemos métodos para ello (p.ej.
getNombre ())
• Implemento el constructor de la subclase asignando
los valores a los atributos directamente en lugar de
llamar asuper
• No aprovecho la potencia de la reutilización
código
de
• En este caso es viable porque los atributos se han definido
comoprotected(¡¡no siempre será así !!)

48
49
Ejercicio 5

• Partiendo de la clase Bicicleta, la cual tiene tres atributos,


velocidadActual, platoActual y piñonActual,
de tipo entero y cuatro métodos acelerar(), frenar(),
cambiarPlato(int plato), y cambiarPiñon(int
piñon), implementa las clases BicicletaMontaña y
BicicletaTandem.
• BicicletaMontaña tiene un atributo suspension de
tipo entero y un método cambiarSuspension(int
suspension)
• BicicletaTandem tiene un atributo numAsientos de
tipo entero.
• Crear los constructores de estas clases para inicializar todos
sus atributos, haciendo uso de super

50
51
52
Herencia
Reescritura (o sobrescritura)

• Modificación de los elementos de la clase


base dentro de la clase derivada
• La clase derivada puede definir:

Un atributo con el mismo nombre que uno de
la clase base → Ocultación de atributos


Un método con la misma signatura que uno
de la clase base → Redefinición de métodos

• Lo más usual cuando se produce reescritura


es que se reescriba un método

53
54
Reescritura I (Shadowing)
Ocultación de atributos. Ejemplo

class Persona {
public String nombre = "Juan";
}
class Alumno extends Persona {
public int nombre = 10003041;
}
class Test {
public static void main (String[] args) {
Alumno a = new Alumno ();
Persona p = a;
System.out.println(p.nombre); Imprime “Juan”
System.out.println(a.nombre)
;
} }
Imprime 10003041

55
Reescritura I (Shadowing)
Ocultación de atributos

• Si definimos en una subclase un atributo del


mismo nombre y tipo que en la superclase, la
de la superclase queda oculta.
• Podemos acceder a la variable de la subclase
o de la superclase utilizando this y sup er.

56
Reescritura I (Shadowing)
Ocultación de atributos

clase "Abuela" Transporte String nombre = "terrestre" clase padre

Tren Vehiculo String nombre = "turismo"

clase hija Moto Coche String nombre = "Ferrari"


• ¿Cómo acceder a variables ocultas (desde la clase hija)?
variables
– nombre (nombre del coche)
clase hija:
– this.nombre (nombre del coche) visibles
– super.nombre (nombre del vehículo)
– ((Vehiculo)this).nombre (nombre del vehículo) Variables
– super.super.nombre (Mal) clases padre
57
ocultas
– ((Transporte)this).nombre (nombre del transporte)
Reescritura II (Overriding)
Redefinición de métodos. ¿Qué es?

• La reescritura de métodos es útil para


– Ampliar la funcionalidad de un método

– Particularizar la funcionalidad de un método a la clase derivada

• Si definimos en una subclase un método con la misma


signatura (nombre + tipo y número de parámetros) que en
la superclase el de la superclase queda oculto.
• ¿Cómo acceder a métodos ocultos?
– arrancar() (ejecuta el método arrancar del coche) Métodos clase hija:
– this.arrancar() (ejecuta el método arrancar del coche) visibles
58
– super.arrancar() ( método arrancar del vehículo) métodos clases padre:
– super.super.nombre (Mal) ocultos

59
60
61
Reescritura II (Overriding)
Redefinición de métodos

• Al mandar un mensaje a un objeto, el


método seleccionado:
– Depende de la clase real de la que el
objeto es una instancia
– No de la clase de referencia a la que esté
asignado, como en el caso de los atributos

62
63
Ejercicio
6

• Sobreescribe
el método acelerar (), deBicicleta , en las
subclasesBicicletaMontaña y BicicletaTandem , de
tal forma que en la primera acelerar suponga triplicar la velocidad
actual y en la segunda cuadruplicar la velocidad actual.
• Crea dosobjetos de las clases
BicicletaMontaña y
BicicletaTandem e invoca sobre ellos el método
acelerar() , ¿cuál es el resultado?
• Desde estos objetos que has creado, ¿cómo accederías a la
implementación del métodoacelerar() , en la clase
Bicicleta ?

64
65
66
67
Constructores y herencia

1. Si no se indica explícitamente, Java inserta


automáticamente una llamada a super() en
la primera línea del constructor de la clase
derivada
public Alumno (String nombre, String apellidos,
int anyoNacimiento, String grupo,
char horario) {
// aquí inserta Java una llamada (invisible) a super()
this.nombre = nombre;
this.apellidos = apellidos;
this.anyoNacimiento = anyoNacimiento;
this.grupo = grupo;
this.horario = horario;
}

68
Constructores y herencia

2. Indicándolo explícitamente

public Alumno (String nombre, String apellidos,


int anyoNacimiento, String grupo,
char horario) {
super(nombre, apellidos, anyNacimiento);
this.grupo = grupo;
this.horario = horario;
}

69
70
71
Polimorfismo
Ejemplo
• Alumno, Profesor y Bedel.
• Creamos unarray de Personadonde incluimos objetos de
Alumno, Profesor y Bedel.
• Al invocar al método imprimir(), sobrescrito en las clases
Alumno, Profesory Bedel, sobre elarray de Persona, cada
objeto utilizará su propia implementación del método

Persona[] grupo = {new Alumno(…), new


Profesor(…), new Bedel(…), new Alumno(…)};

for (int i=0; i<grupo.length


; i++){
grupo[i].imprimir();
}

72
Polimorfismo
Ligadura dinámica
• Se llama al método correcto, aunque nos
estemos refiriendo al objeto de la subclase a
través de una referencia a la superclase

• Este mecanismo se llama “ligadura dinámica”

– permite detectar en tiempo de ejecución cuál es el


método adecuado para llamar

• El compilador no genera el código para llamar


al método en tiempo de compilación

73
– Genera código para calcular qué método llamar

74
Ejercicio7

• Crea unarray de la claseBicicleta, que contenga objetos


de las clasesBicicleta, BicicletaMontañay
BicicletaTandem

• Invoca el métodoacelerar()sobre cada uno de los


objetos aprovechando las propiedades de polimorfismo y
ligadura dinámica

75
Modificadores y acceso
Final

• Si no se quiere que las clases derivadas


sean capaces de modificar un método o
un atributo de la clase base, se añade a
ese método o atributo la palabra
reservada final

76
77
78
Programación de Sistemas

Programación ORIENTADA a Objetos (II)

Julio Villena Román


<[email protected]
>
MATERIALES
BASADOSEN EL TRABAJODE DIFERENTES :
AUTORES
M.CarmenFernández Panadero, Raquel M. Crespo García
Carlos Delgado
Kloos, Natividad Martínez Madrid

79
Con t en idos

► Casting. Compatibilidadde tipos


► Clases y métodos abstractos
► Interfaces

80
Casting (conversión)
Sintaxis y tipos
• Sintaxis:(tipo) identificador

• Dos tipos de casting:



Widening o upcasting: Una subclase se utiliza
como instancia de la superclase. Es implícito.


Narrowing o downcasting: La superclase se
utiliza como instancia de una subclase.
Conversión explícita.

81
• Sólo se puede hacer casting entre clases padre
e hija no entre clases hermanas

82
Casting (conversión)
Widening o upcasting
1. Compatibilidad hacia arriba
(upcasting)
– Un objeto de la clase derivada siempre se
podrá usar en el lugar de un objeto de la
clase base (ya que se cumple la relación
“es-un”)
Persona p = new Alumno();

83
Casting (conversión)
Narrowing o downcasting
2. Compatibilidad hacia abajo (downcasting)
– No se produce por defecto, ya que un objeto
de la clase base no siempre es un objeto de la
clase derivada
Alumno a = new Persona(); // error
– Sólo es posible en los casos en los que el objeto
de la clase base realmente sea un objeto de la
clase derivada
– Estos casos se tendrán que indicar
explícitamente con un casting (con una
asignación explícita de la clase).
84
85
86
Casting (conversión)
El operador instanceOf
• Sintaxis:
objeto instanceOf clase
– Comprueba si un objeto es realmente de la
clase derivada
• Ejemplo:
public Alumno comprueba (Persona p) {
Alumno a = null;
if (p instanceOf Alumno)
a = (Alumno) p;
return a;
}

87
Clases abstractas
¿Qué son?

• Aquellas que tienen al menos un método


abstracto (sin implementar, sin código).
• Declara la estructura de una determinada
abstracción, sin implementar completamente
cada método
Mensaje

Email SMS Fax MensajeVoz

88
Clases abstractas
Características

• Las clases y métodos abstractos se definen


con la palabra clave abstract
public abstract class Figura {...}

• No pueden llevar el modificador abstract:


– los constructores
– los métodos estáticos
– los métodos privados

89
Clases abstractas
Características

• No podemos crear objetos de una clase abstracta


– Pueden existir referencias a clases abstractas
– Pero apuntarán a objetos de clases derivadas de la clase
abstracta.
Figura fig = new Rectangulo(2,3);

• Sí podemos heredar de una clase abstracta


• En una clase abstracta puede haber
– Metodos abstractos
– Métodos no abstractos

90
Clases abstractas
¿Para qué sirven?: Implementaciones parciales

• Las clases abstractas suelen usarse para representar


clases con implementaciones parciales
– Algunos métodos no están implementados pero sí
declarados

• El objetivo de las implementaciones parciales es dar


una interfaz común a todas las clases derivadas de
una clase base abstracta
– Incluso en los casos en los que la clase base no tiene la
suficiente información como para implementar el método

91
Clases abstractas
Métodos abstractos
• Métodos declarados pero no implementados
en las clases abstractas
public abstract tipoDevuelto nombre (listaParametros);

– Se declaran con la palabra reservada abstract

• Las clases que hereden de la clase abstracta


deberán implementar los métodos abstractos
de la superclase
– O serán abstractas ellas también

NOTA: No hay llaves!! No


están implementados: después
92
de la declaración se pone solo un
;

93
Clases abstractas
¿Cómo se usan? Ejemplo

public abstract class Figura {


protected double dim1;
protected double dim2;
public Figura(double dim1, double dim2) {
this.dim1 = dim1;
this.dim2 = dim2;
}
public abstract double area();
}

public class Rectangulo extends Figura {


public Rectangulo(double dim1, double dim2) {
super(dim1,dim2);
}
public double area() {
return dim1*dim2;
}
}

94
Ejercicio 8

• Partiendo de la clase Bicicleta, la cual tiene tres


atributos, velocidadActual, platoActual y
piñonActual, de tipo entero y cuatro métodos
acelerar(), frenar(), cambiarPlato(int
plato), y cambiarPiñon(int piñon), implementa
la clase abstracta Vehículo, la cual será una superclase de
Bicicleta
• Piensa qué atributos y métodos serán propios de
Bicicleta y cuáles pueden heredarse de Vehículo,
teniendo en cuenta que además de Bicicleta existirán
las subclases Coche y Camión
95
• Piensa qué métodos deben ser abstractos y cuáles no en la
clase Vehículo

96
97
98
Interfaces
¿Qué son?
• Una interfaz es un elemento puramente de
diseño
– ¿Qué se quiere hacer?

• Una clase (incluidas las abstractas) es una


mezcla de diseño e implementación
– ¿Qué se quiere hacer y cómo se hace?

• Distintas clases pueden implementar la


interfaz de distintas formas

99
Interfaces
Declaración

• Sintaxis:
public interface nombreInterfaz {
static final tipo CONSTANTE = valor;
tipoDevuelto nombreMetodo(listaParam);
}

NOTA 1: No hay llaves!! No está implementado


despuésde la declaraciónse pone sólo un ;

NOTA2: Las constantes y métodos en las


interfaces son siempre públicos
(no hay necesidad de hacerlo explícito
)

100
Interfaces
Implementación

• Si una clase implementa una interfaz, quiere decir que


implementa todos los métodos abstractos de esa interfaz
• Esto se representa con la palabra reservada
implements:

public class Clase implements Interfaz {...}

101
Interfaces
¿Para qué sirven? Herencia múltiple

metodoA metodoB metodoC

Class A Interface B Interface C

extends implements implements

Class C

• En Java una clase hereda de una única superclase


o No existe la herencia múltiple
• Pero puede implementar varios interfaces
102
Interfaces
¿Cómo se usan?

Figura Dibujable
•area() •dibujar()

extends implements

Círculo Rectángulo
•area() •area()
•dibujar() •dibujar()

public abstract class Figura {…}

public interface Dibujable {…}


public class Circulo extends Figura implements Dibujable
public class Rectangulo extends Figura implements Dibujable
103
Ejercicio9

• Implementa la interfaz , la cual


Imprimible
contiene el método
imprime ()que no
devuelve ningún valor
.

• La claseBicicleta implementa la interfaz


Imprimible de tal forma que se imprima por
pantalla la velocidad actual el piñón actual y el
plato actual.

104
Interfaces
Herencia de interfaces y polimorfismo

• Las interfaces también pueden tener una


jerarquía de herencia
• Los métodos que deberán incluir las clases
que implementen las interfaces se van
acumulando siguiendo la jerarquía
• Las interfaces también dan soporte a la
resolución dinámica de métodos durante la
ejecución (ligadura dinámica)

105
Ejercicio10

• Implementa la interfaz
Definir , la cual
contiene el método
getAtributos () que
devuelve el valor de los atributos de un objeto.
La interfazImprimiblehereda deDefinir .

• ¿Qué cambios hay que hacer en la interfaz


Imprimible ? ¿Y en la clase
Bicicleta ?

106
Resumen Orientación a objetos

• Clase (concreta)
– Todos los métodos implementados
• Clase abstracta
– Al menos un método no implementado,
(sólo declarado)
– modificador abstract
• Interfaz
– Nada de implementación
– palabra reservada: interface
107
Resumen Orientación a objetos

• Clase (concreta o abstracta)


– puede extender (extends) a una sola clase
(herencia simple)
– puede implementar (implements) uno o
más interfaces (herencia múltiple)
• Interfaz
– puede extender (extends) a uno o más
interfaces

108
clase metodo atrib
MODIFICADORE
S
acceso public
Accesible desde cualquier otra clase
(friendly Accesible sólo desde clases de su propio paquete
)
protecte Accesible desde la clase y sus subclases
d
Accesibles sólo dentro de la clase
private
otros
No se pueden
abstract instanciar
Son para
heredar de
ellas
Al menos 1
método
abstracto

No tiene código
Se implementa en las
subclases o clases hijas
No se puede No se puede ocultar No se
final heredar de Es cte y no puede ser modificado en las clases cambiar s
ellas. Es la hijas es cte.
hoja en el Se suele u
árbol de combinac
herencia static
Clase de Es el mismo para todos los objetos de la Es la mi
static nivel clase. structuraSe utiliza: del lenguaje todos los
copy máximo. de la clase
righ NombreClase.metodo();
mcfp
Se aplica a
Se utiliza
@it classes NombreC
t internas uto; 100
E
.uc3m.es

También podría gustarte