Implement abstract class and abstract method system