final and abstract class