

Each class can declare new members and can redefine inherited ones, but a class cannot remove members defined in an ancestor. Hash / dictionary)?Re: 'template method',a subclass has to implement a method that is used in abstract classThat's correct, but we're referring to properties.Ī class type automatically inherits all of the members from its immediate ancestor. Yes I did respond as soon as I was notified:) Re 'instance-bound handlers' I don't understand why the abstract class Popup requires its subclasses to return void from onClose when it needs to return an object (i.e.


Moreover, everything related to runtime checks and exception throwing is undesired - we have static checking for that.Also, what do you think about instance-bound handlers which are described in my previous message update? It seems like I've updated it too late and you haven't noticed that. I mean that I don't need pairs of getValue/ setValue per each field. If it could, then just specifying this default value in abstract base would be enough.The point here in favor of abstract properties (and I mentioned it earlier) is that it is not Java and devs should not be forced to use Java-style methods to access a simple value. I think that template method means that a subclass has to implement a method that is used in abstract class (for example in base render method) and it is assumed that this method cannot return any default value for being abstract.
