open abstract class A abstract sealed class B