Пишет incompatible types(несовместимые типы). Я честно не знаю в чем дело. Вроде все правильно но компилятор так не думает.
static  class MovieFactory {
       static Movie getMovie(String key) {
            SoapOpera movie = null;

            //Что здесь не так. Компилятор выдает incompatible types
            switch (key){
                case "soapOpera":
                    movie = new SoapOpera();
                    break;
                case "cartoon":
                    movie = new Cartoon();
                    break;
                case "thriller":
                    movie = new Thriller();
                    break;
            }

            return movie;
        }
    }

    static abstract class Movie {
    }

    static class SoapOpera extends Movie  {
    }

    static  class Cartoon extends Movie  {
        }

    static  class Thriller extends Movie  {
            }
}