The inherited methods can be used directly as they are. You can write a new instance method in the subclass that has the same signature as the one in the superclass, thus overriding it . You can write a new static method in the subclass that has the same signature as the one in the superclass, thus hiding it.