add interface and abstract class sample