Abstract methods/classes leave detailed implementation to sub classes, and every sub classes may implement differently, thus leads to polymorphism in OOP.