Why the function that originally does nothing is overloaded in an abstract class and still do nothing?