2011-05-10 25 views
14

cómo declarar las funciones virtuales en Objective C.funciones virtuales en C Objetivo

virtual void A(int s); 

cómo declarar la misma en Objective C.

-(void)A:(int)s //normal declaration 
+7

Todos los métodos Objective-C son virtuales. Las funciones son construcciones del lenguaje C, no pueden ser virtuales. –

+2

posible duplicado de [¿Cuál es el equivalente de una función pura virtual de C++ en Objective-C?] (Http://stackoverflow.com/questions/4374677/what-is-the-equivalent-of-ac-pure-virtual -función-en-objetivo-c) –

Respuesta

40

Objetivo-c no soporta las funciones virtuales, o para decirlo de otra manera: todas las funciones en las clases obj-c son virtuales ya que las llamadas a métodos se determinan en tiempo de ejecución.

Si su subclase anula método de superclase y subclase referencia de instancia usando puntero a superclase entonces el método subclase se llamará:

@interface A{ 
} 
-(void) someMethod; 
@end 

@interface B : A{ 
} 
-(void) someMethod; 
@end 

... 
A* obj = [[B alloc] init]; 
[obj someMethod]; // method implementation from B will be called 
Cuestiones relacionadas