Las clases

En Windev tienes una opción en el menú para crear clases no visuales. Cuando miras el código que te ha generado ves:

Animales is a Class
	// Miembros de la clase
	sTipo is string = "Sin definir"
END

En las clases podemos crear métodos. Por ejemplo:

PROCEDURE Ruge()

info("Aaaah")

Si queremos crear una sub-clase, basta con que crear una clase y añadirle el inherit. Así tendriamos:

Ballena is a Class
	inherits from Animales
END

El método Ruge() de la clase ballena es identico al de la clase animal. Si queremos manipularlo podemos escribir:

PROCEDURE Ruge()

// Ejecuta el código antes de la clase padre
Info("No hemos definido rugido")

// Método 1: Ejecuta el código de la clase padre, de la que hereda
Ancestor:Ruge()

// Método 2: Si solo hay un nivel de herencia es similar al anterior.  Si hay más niveles, se puede ejecutar cualquier nivel anterior poniendo directamente la clase
Animales:Ruge()

Para instanciar una clase usamos el código:

clAnimal is dynamic Ballena
clAnimal = new Ballena()
clAnimal.Ruge()