Clase de la que no se pueden crear instancias

19/01/2004 - 16:39 por Jose | Informe spam
Buenas, ¿como se define en c# una clase para que no se
puedan crear instancias de la misma?

Muchas gracias
Jose

Preguntas similare

Leer las respuestas

#1 Juan Ramon Martinez
19/01/2004 - 17:14 | Informe spam
Hola

Todo depende de porque no quieras que se creen instancias. Hay dos
escenarios posibles:

1-Utilizar clases abstractas
2-No escribir constructores públicos para la clase

¿Porque es necesario que no se creen instancias de la clase? Con un poco más
de información sobre lo que quieres lograr es más facil buscar cual sería la
mejor forma de hacerlo.

Saludos

JR


"Jose" escribió en el mensaje
news:06e601c3dea2$7e752320$
Buenas, ¿como se define en c# una clase para que no se
puedan crear instancias de la misma?

Muchas gracias
Jose
Respuesta Responder a este mensaje
#2 Anonimo
19/01/2004 - 17:31 | Informe spam
Es para un trabajo de la Universidad. La clase vehiculo es
abstracta. Creo que lo que estoy buscando es alguna
propiedad como la de sealed que no permitar crear objetos
de la clase vehiculo.

¿Se pueden crear objetos de una clase abstracta? ¿esta
permitido cuando se genera el código?

Muchas gracias
jose




Hola

Todo depende de porque no quieras que se creen


instancias. Hay dos
escenarios posibles:

1-Utilizar clases abstractas
2-No escribir constructores públicos para la clase

¿Porque es necesario que no se creen instancias de la


clase? Con un poco más
de información sobre lo que quieres lograr es más facil


buscar cual sería la
mejor forma de hacerlo.

Saludos

JR


"Jose" escribió en


el mensaje
news:06e601c3dea2$7e752320$
Buenas, ¿como se define en c# una clase para que no se
puedan crear instancias de la misma?

Muchas gracias
Jose


.

Respuesta Responder a este mensaje
#3 Juan Ramon Martinez
19/01/2004 - 21:07 | Informe spam
Si, en tu caso lo que necesitas es una clase abstracta.

De una clase abstracta no se pueden crear instancias (objetos). La idea con
las clases abstractas es escribir clases que hereden de ellas, las cuales si
se pueden instanciar (no abstractas). En tu caso, la clase "vehiculo" me
imagino tendrá hijos como "Automovil" "Avion" "Helicoptero", etc. No puedes
construir un "vehiculo" (clase abstracta) sin saber de que clase específica
es (subclases). El proposito real de una clase abstracta es forzar a que se
herede de ella

Una clase sealed de hecho es mas o menos lo opuesto de abstracta, no permite
que se herede de ella. Si se pueden crear instancias de una clase sealed.

Espero que esto te ayude

JR



escribió en el mensaje
news:00e501c3dea9$bf2295e0$
Es para un trabajo de la Universidad. La clase vehiculo es
abstracta. Creo que lo que estoy buscando es alguna
propiedad como la de sealed que no permitar crear objetos
de la clase vehiculo.

¿Se pueden crear objetos de una clase abstracta? ¿esta
permitido cuando se genera el código?

Muchas gracias
jose




Hola

Todo depende de porque no quieras que se creen


instancias. Hay dos
escenarios posibles:

1-Utilizar clases abstractas
2-No escribir constructores públicos para la clase

¿Porque es necesario que no se creen instancias de la


clase? Con un poco más
de información sobre lo que quieres lograr es más facil


buscar cual sería la
mejor forma de hacerlo.

Saludos

JR


"Jose" escribió en


el mensaje
news:06e601c3dea2$7e752320$
Buenas, ¿como se define en c# una clase para que no se
puedan crear instancias de la misma?

Muchas gracias
Jose


.

Respuesta Responder a este mensaje
#4 Michael Giagnocavo [MVP]
20/01/2004 - 16:26 | Informe spam
Si quieres hacer un function library (que no puedes crear instancias, ni
heredar), debes declaralo como sealed, y hacer un constructor privado.

Si deseas un clase base, entonces solo abstract es lo que buscas.

-mike
MVP

"Jose" wrote in message
news:06e601c3dea2$7e752320$
Buenas, ¿como se define en c# una clase para que no se
puedan crear instancias de la misma?

Muchas gracias
Jose
Respuesta Responder a este mensaje
#5 Pedro Luna Montalvo
03/02/2004 - 18:19 | Informe spam
Solo una pequeña acotacion:

Ya lei que lo que necesitas es una clase abstracta, pero si se necesita
crear una clase que no pueda ser instanciada, no basta con no crear ningun
constructor publico, pues se crearia uno predeterminado sin parametros. Hay
que crear al menos un constructor no público (dependiendo del caso: private,
protected, internal), y ninguno publico.

Saludos
Pedro
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida