semantic: Implement overloading for member functions.
test: Add override overloading tests.
semantic: Implement abstract classes.
test: Add abstract class tests.