inicio | documentación | contacto
Version para imprimir Imprimir
Inicio » Documentación » Clases y herencia

Clases y herencia

Los objetos publicos permiten declarar atributos y métodos. Sin embargo, es posible que queramos reutilizarlos en varios objetos. Para esto tenemos las clases, que permiten agrupar definiciones de objetos reutilizables.
Las clases se definen exactamente igual que los objetos publicos, con la diferencia de usar class y endclass en vez de object y endobject.

Un ejemplo de una clase que define un par de atributos y métodos :

class Figura

    var forma = "indefinida"
    var esquinas = -1

    def informacion
        println "La forma es "+forma+" y tiene "+esquinas+" esquinas"
    end
endclass

Herencia

La utilidad de las clases consiste en que se pueden crear objetos que hereden de ellas. Cuando un objeto hereda de una clase, hereda sus atributos y métodos, por lo que el objeto resultante contiene sus propios atributos y métodos más los que ha heredado de la clase. Además, es posible que el objeto sobreescriba los atributos y método heredados si lo desea.

Para que un objeto publico herede de una clase, es necesario poner al lado de su id el símbolo de dos puntos, seguido de la clase de la que hereda, así:

object Objeto:ClaseDeLaQueHereda
endobject

Un ejemplo de dos objetos que heredan de la clase Figura anterior. Cada objeto sobreescribe los atributos forma y esquinas. El método informacion() es heredado en las dos, por eso es posible llamarlo como si formara parte de ellas.

def main
    Circulo.informacion()
    Cuadrado.informacion()
end

class Figura

    var forma = "indefinida"
    var esquinas = -1

    def informacion
        println "La forma es "+forma+" y tiene "+esquinas+" esquinas"
    end
endclass

object Circulo:Figura
    var forma ="redonda"
    var esquinas = 0
endobject

object Cuadrado:Figura
    var forma = "cuadrada"
    var esquinas = 4
endobject

Clases que heredan de clases

También las clases pueden heredar de otras clases de la misma manera que lo hacen los objetos. De esta manera, podemos crear una estructura de herencia en el que métodos y atributos se reutilizan, creando un código más compacto evitando la repetición.

En el siguiente ejemplo tenemos una clase Individuo, que tiene los atributos peso, edad,

class

    
			
Última modificación: miércoles 14 de mayo de 2008 15:35:55
Fecha de creación: viernes 28 de diciembre de 2007 12:21:44
Categorías: