FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Sobre los modificadores 'static' y 'abstract'
Hola quería saber si es posible hacer una clase estática o abstracta en delphi (version 2006), al estilo de java y demás.
Quiero hacer una clase abstracta para que no se pueda instanciar más que en sus descendientes, pero no me deja poner el modificador abstract (MyClass = abstract class ??). Lo mismo me pasa cuando intento hacer toda una clase estática. Sé como hacer miembros abstractos y estáticos... pero clases enteras no. Gracias por la ayuda |
#2
|
||||
|
||||
Hola,
Hasta donde yo llego, basta que una clase tenga un método "abstracto" o "estático" para que la clase que lo implementa se considere "abstracta" o "estática", respectivamente. No recuerdo ahora mismo que pueda explicitarse de otro modo esto. A lo mejor me equivoco. |
#3
|
||||
|
||||
__________________
El malabarista. |
#4
|
|||
|
|||
Gracias, pero no se muestra ningún ejemplo de como usar clases estáticas.
He probado 'class abstract' y va bien. |
#5
|
||||
|
||||
Hola,
Pues así es la verdad. Después de Delphi 2007 pueden declararse clases como esta:
Este artículo también puede interesar. No obstante, creo que hasta Delphi 7, lo que he dicho arriba sirve... |
#6
|
||||
|
||||
Hola,
Cita:
Cita:
Yo tengo entendido que se considera una clase estática si esta cuenta con algún método estático. Pero parece posible instanciar una clase, aun teniendo algún método estático. Y, por otro lado, a partir de Delphi 7 se incluyen mejoras, como declarar propiedades estáticas, que no sé si podía hacerse en versiones anteriores, pero, creo que no. Última edición por dec fecha: 26-03-2008 a las 23:28:55. |
#7
|
|||
|
|||
Creo que no es así, si declaras un miembro estático (class var nombreCampo / class procedure/function) o abstracto (function/procedure; virtual; abstract sólo son estáticos o abstractos esos miembros, no toda la clase, ya que tienes que instanciarla para acceder a los demás campos que no son ni estáticos ni abstractos.
En C#, cuando hay una clase estática todos los miembros tienen que ser obligatoriamente estáticos y las clases abstractas no se pueden instanciar a no ser que sea una clase heredada de esta. Conclusión: Con Delphi > 7 se puede hacer lo mismo, lo que usa nombres diferentes (lo que no entiendo es porqué cuando escribo static se vuelve de color azul, como si fuera keyword). Gracias Última edición por xaguilars fecha: 26-03-2008 a las 23:34:42. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error Abstract Error y Access violation | zvf | OOP | 33 | 08-09-2010 18:50:33 |
Articulo sobre la facilidad de probar componentes open source en windows sobre linux | gmontes | Noticias | 0 | 22-08-2007 22:34:16 |
Static Controls | carlos_nielsen | API de Windows | 0 | 16-01-2007 16:59:24 |
Abstract Error al cerrar aplicación | jymy788 | Varios | 6 | 01-07-2005 20:55:01 |
formStyle=fsMDIForm, formStyle=fsMDIChild == "Abstract Error" | Essato | Varios | 16 | 15-06-2005 19:55:34 |
|