[Extract Superclass] initial codes
[Extract Superclass] create a super class and make two classes extend it
[Extract Superclass] pull up fields and methods, why methods?
[Extract Superclass] create constructor in super class, and use super() in sub-classes
[Extract Superclass] find the same method and declare it in super class
[Extract Superclass] change the usage to use super class instead of sub-class
[Extract Superclass] initial codes
[Extract Superclass] introduce a sub class
[Extract Superclass] change sub class contructor and push down method
[Extract Superclass] pull down fields
[Extract Superclass] remove type code
[Extract Superclass] initial codes
[Extract Superclass] create a new class and reference the new class in the old class
[Extract Superclass] move field and use new method in old class
[Extract Superclass] inline and keep the original method
[Extract Superclass] move field
[Extract Superclass] delete unused fields