Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- [<AbstractClass>]
- type Animal(name : string) as this =
- do
- let t = this.GetType()
- printfn "Creating an animal called %s of type %A!" name t
- abstract member say: unit -> string
- type Giraffe(name) =
- class
- inherit Animal(name)
- let sound = "cough"
- override this.say() = sound
- end
- type Tiger(name) =
- class
- inherit Animal(name)
- let sound = "growl"
- override this.say() = sound
- end
- let doEvil (a : Animal byref) =
- a <- new Tiger("Tony")
- let main =
- let mutable g = Giraffe("Fred") :> Animal
- doEvil(&g)
- printfn "The animal says, \"%s\"!" (g.say())
- ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement