我正准备参加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();
是可能的,因为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是的,你对两个假设都是正确的。如果有帮助,您可以通过单击解决方案旁边空心的勾子来接受来自这里的** one **解决方案,这对您最有帮助。 – user3437460