Casting objects - Polymorphism

BlitzMax Forums/BlitzMax Beginners Area/Casting objects - Polymorphism

Don't have a 'Field Health' in your baseclass.
This might help.
SuperStrict

Type TAlien
'Field health:Int = 1
'
Method PrintHealth() Abstract

End Type

Type TAlienSmall Extends TALien
  Field health:Int = 2
'
  Method PrintHealth()
    Print "Method PH in TAlienSmall"
    Print health
  End Method

End Type

Type TAlienBig Extends TAlien
  Field health:Int = 3
  Method PrintHealth()
    Print "Method PH in TAlienBig"
    Print health
  End Method
End Type

' Main
Local alienlist:TList = New TList
Local as:Talien = New TAlienSmall
Local ab:TAlien = New TAlienBig

alienlist.AddLast(as)
alienlist.AddLast(ab)

For Local alien:TAlien = EachIn alienlist
alien.PrintHealth

Next