Я готовлю к экзамену в java. Пожалуйста, взгляните на следующие два упражнения (у меня есть решения, но решения без объяснений), поэтому, если кто-нибудь сможет проверить мои объяснения, это было бы весьма полезно.Статические и динамические типы
1)
public interface Sale{}
public abstract class Clothing{}
public class Jacket extends Clothing implements Sale{}
public class LeatherJacket extends Jacket{}
Какие из следующих возможны:
Sale var1 = new LeatherJacket();
возможно, так как оладья является подклассом куртка и куртка реализует продажу? (Я просто догадываюсь здесь).
Sale var2 = new Sale();
невозможно. Вы не можете создать объект типа интерфейса.
Clothing var3 = new Clothing();
невозможно. Вы не можете создать объект абстрактного класса.
Clothing var4 = new LeatherJacket();
возможно, но почему?
Jacket var5 = new LeatherJacket();
возможно, но почему именно?
LeatherJacket var6 = new Object();
невозможно, но почему бы и нет?
Благодарим вас за отложенный ответ. Итак, в первом var1 является переменной типа Sale и хранит объект LeatherJacket, не так ли? Тогда также должно быть правдой: Sale var7 = new Jacket() ;? – DerDieDasEhochWas
@DerDieDasEhochWas Да, вы правы на обоих своих предположениях. Если это помогает, вы можете принять ** одно ** решение отсюда, которое помогло вам, щелкнув полый тик рядом с решением. – user3437460