I have read a lot of posts about different between Abstract Factory and Factory method, but there are a problem I can't understand.
One difference between the two is that with the Abstract Factory pattern, a class delegates the responsibility of object instantiation to another object via composition whereas the Factory Method pattern uses inheritance and relies on a subclass to handle the desired object instantiation
Maybe I know why Abstract Factory pattern use composition and delegates to create object, but I can't understand why Factory Method pattern uses inheritance to create concrete class objects.
This question is not about what abstract factory is or what factory method is and hence does not have answer here
It is about why factory method seems to use inheritance when a client can call factory method directly too. Please unmark it as duplicate.