abstract and final classes