请注意,您不能构造抽象类的对象,但是仍然可以有一个对象
类型为抽象类的引用。当然,它所指的实际对象必须是
具体子类的实例:
Account anAccount; // OK
anAccount = new Account(); // Error—Account is abstract
anAccount = new SavingsAccount(); // OK
anAccount = null; // OK
不明白为什么可以有一个对抽象类的对象引用...
最佳答案
当您具有类型为抽象类的对象引用时,该引用并不意味着“我正在引用抽象类”。相反,它的意思是“我正在引用某个实际对象,该对象是该抽象类的子类。”这就是为什么可以让引用引用SavingsAccount
的原因,它是Account
的子类的非抽象类,但是由于它实际上不能实例化new Account()
,所以不能将其指向Account
。
请注意,引用本身不是抽象类的实际实例。
希望这可以帮助!