Overiding methods help needed

BlitzMax Forums/BlitzMax Beginners Area/Overiding methods help needed

Can anyone please provide me with a very simple example of how you overide methods and the benefits of doing so as I am having lots of problems trying to figure it out.

Any advice would be great.

Jason.

You can not overwrite methods other than redefine them with the exactly same type header.

so if the original was:

Update(timedif:float)

then the one on the extended type must be

Update(xxx:float) as well

you can not remove that nor add something else. nor can you define 2 different versions of update.

I'm not sure if this is a good way to do it but I just had this idea of a way in which you could use overridden methods.

You have a base vehicle type which is abstract. That means you cannot make an actual vehicle - it is a template.

A vehicle variable can accept any type that extends from it. Here we have smallship and largeship. Each ship has a different upgrade method, and you would put any actions unique to a type of ship in its own type. Only common actions are placed in vehicle.

Type vehicle Abstract
   Method upgrade:vehicle() Abstract
   Method move()
      'assuming all vehicles move in the same way put common code in this type
   End Method
End Type

Type smallship Extends vehicle
   Method upgrade:vehicle()
      Local newvehicle:vehicle = New largeship
      Return newvehicle
   End Method
End Type

Type largeship Extends vehicle
   Method upgrade:vehicle()
      Local newvehicle:vehicle = New nextship
      Return newvehicle
   End Method
End Type


'''''''''

Local player:vehicle = New smallship
player = player.upgrade() 'now a bigship