Retroceder   Foros del Web > Programación para sitios web > Java y JSP

Respuesta
 
Herramientas Desplegado
Antiguo 30-jul-2006, 09:11   #1 (permalink)
Raiko ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
¿Como evitar extends de una clase?

Si quiero crearme una clase, y no quiero que nadie pueda utilizarla una vez compilada para extenderla y meter nuevas cosas o modificar otras... ¿que patrón se debe utilizar?

¿constructor privado?


ayuda por favor!!
Raiko está desconectado   Responder Citando
Antiguo 31-jul-2006, 00:23   #2 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.487
¿Hacer la clase final?
GreenEyed está desconectado   Responder Citando
Antiguo 31-jul-2006, 12:44   #3 (permalink)
homokakus ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
asi es debes declarar la clase como final, y para los metodos tambien esto no deja sobreescribirlos.

:)
homokakus está desconectado   Responder Citando
Antiguo 31-jul-2006, 14:41   #4 (permalink)
GreenEyed tiene algunos puntos positivos de karma
 
Fecha de Ingreso: octubre-2003
Mensajes: 2.487
Si haces la clase final no hace falta hacerlo en los metodos
GreenEyed está desconectado   Responder Citando
Antiguo 31-jul-2006, 23:02   #5 (permalink)
Colaborador
TolaWare tiene algunos puntos positivos de karma
 
Avatar de TolaWare
 
Fecha de Ingreso: julio-2005
Mensajes: 4.253
Enviar un mensaje por MSN a TolaWare
Cita:
Iniciado por Raiko
Si quiero crearme una clase, y no quiero que nadie pueda utilizarla una vez compilada para extenderla y meter nuevas cosas o modificar otras... ¿que patrón se debe utilizar?

¿constructor privado?


ayuda por favor!!
No es necesario aplicar un patron de diseño, simplemente con agregar la palabra clave final antes de la declaración de la clase, evitas que alguien pueda heredar de esa clase.

final class Clase { .... }

Si colocas un final en algun metodo, pero la clase no es final, lo unico que logras es que si alguien hereda de esa clase, no pueda redefinir el metodo calificado como final.

Lo que sugeriste de hacer el constructor privado, es una forma de evitar la herencia que es valida. Es valido ya que si alguien crea una clase que herede de esta, la clase que hereda una podra llamar al constructar de la clase padre, ya que este es privado, por lo que el compilador de java no puede compilar la clase.

Esta forma de evitar la herencia tiene una contra: hay que agregar algun metodo que permita la creacion de objetos de esta clase, ya que nos e puede llamar al constructor.

Saludos
TolaWare está desconectado   Responder Citando
Antiguo 01-ago-2006, 00:31   #6 (permalink)
Raiko ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
Muchas gracias a todos
Raiko está desconectado   Responder Citando
Respuesta
No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Desactivado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 10:22.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93