I am running into a problem of type compatibility when I declare a parameter of a subroutine as an abstract superclass and try to pass through a subclass. According to the documentation I have read, this should work (it also works in many other OOP languages). Furthermore, I attempted to create a field symbol of the superclass and assign the subclass to it, then pass it through to the subroutine, but the type incompatability error occurred there as well. This leads me to believe it is a problem with my declaration of the classes, but they seem alright. I am going to post example code in the following post.
Please examine and let me know if I am doing anything weird/wrong.