As a continuation of #6, which allows the abstract modifier on class declarations, we should extend this to class methods.
Relevant points:
- An
abstract method may only be declared in an abstract class abstract methods may not have implementationsabstract methods may not be private, but may be protected- It is an error to invoke an abstract method via
super in a derived clas - Fields may not be
abstract - Property getters / setters may not be
abstract - A class must be marked
abstract if it does not overwrite all of its abstract base class's abstract methods - All overloads of a method must have, or not have, the
abstract modifier - Static methods may not be
abstract abstract modifier must come after public or protected modifier
Secondary clarifications:
abstract has no impact on assignability / subtype / supertype relations
As a continuation of #6, which allows the
abstractmodifier on class declarations, we should extend this to class methods.Relevant points:
abstractmethod may only be declared in anabstractclassabstractmethods may not have implementationsabstractmethods may not beprivate, but may beprotectedsuperin a derived clasabstractabstractabstractif it does not overwrite all of its abstract base class'sabstractmethodsabstractmodifierabstractabstractmodifier must come afterpublicorprotectedmodifierSecondary clarifications:
abstracthas no impact on assignability / subtype / supertype relations