abstract class A {
  late
  int property4;
  late
  int? property5;
  covariant late int ;
  property6;
  A(this.property4, this.property5, this.property6);
}
abstract class B1 {
  late
  final int property4;
  late
  final int property5;
  late
  final int? property6;
  B1(this.property4, this.property5, this.property6);
}
abstract class B2 implements B1 {
  void set property4(int i);
  void set property5(int? i);
  void set property6(int i);
}
abstract class C1 {
  late
  int property4;
  late
  int property5;
  late
  int property6;
  C1(this.property4, this.property5, this.property6);
}
abstract class C2 implements C1 {
  int get property4;
  int get property5;
  int? get property6;
}
main() {}
