public static void Main()
MotherShip ms = new MotherShip();
SpaceShip ss = ms.CreateShip(SpaceShipType.Scout);
Console.WriteLine(ss.GetType());
public SpaceShip CreateShip(SpaceShipType type){
case SpaceShipType.Fighter: return new Fighter();
case SpaceShipType.Scout: return new Scout();
public abstract class SpaceShip{
public abstract void Fly();
public class Fighter :SpaceShip{
public override void Fly(){
Console.WriteLine("лечу ");
public class Scout : SpaceShip{
public override void Fly(){
Console.WriteLine("лечу на разведку");
public enum SpaceShipType{