extending abstract classes in concrete classes