Foros del Web » Programación para mayores de 30 ;) » Java »

¿Como evitar extends de una clase?

Estas en el tema de ¿Como evitar extends de una clase? en el foro de Java en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/07/2006, 09:11
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
Antigüedad: 18 años, 5 meses
Puntos: 0
¿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!!
  #2 (permalink)  
Antiguo 31/07/2006, 00:23
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
¿Hacer la clase final?
  #3 (permalink)  
Antiguo 31/07/2006, 12:44
 
Fecha de Ingreso: noviembre-2004
Mensajes: 68
Antigüedad: 19 años, 5 meses
Puntos: 0
asi es debes declarar la clase como final, y para los metodos tambien esto no deja sobreescribirlos.

:)
  #4 (permalink)  
Antiguo 31/07/2006, 14:41
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Si haces la clase final no hace falta hacerlo en los metodos
  #5 (permalink)  
Antiguo 31/07/2006, 23:02
Avatar de TolaWare
Colaborador
 
Fecha de Ingreso: julio-2005
Mensajes: 4.352
Antigüedad: 18 años, 9 meses
Puntos: 24
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
__________________
http://blog.tolaware.com.ar -> Blog de Java, Ruby y Linux
  #6 (permalink)  
Antiguo 01/08/2006, 00:31
 
Fecha de Ingreso: noviembre-2005
Mensajes: 97
Antigüedad: 18 años, 5 meses
Puntos: 0
Muchas gracias a todos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:50.