【问题标题】:Difference in initialazing objects in javajava中初始化对象的区别
【发布时间】:2020-11-30 11:56:21
【问题描述】:

假设我有一个抽象类 A 和一个名为 B 的类扩展它。这样初始化有什么区别:

A objectname=new B();

还有这个

B objectname=new B();  

【问题讨论】:

  • 如果 A 是 B 实现的接口,这同样适用。如果接口对类的描述足够好,那么可以在不更改代码的情况下更改为不同的实现(除了一行)。比如List接口。

标签: java object inheritance abstract-class


【解决方案1】:

在这两种情况下,您都将创建B 的实例。唯一的区别是您分配此实例的位置。在第一个 sn-p 中,objectname 的类型为 A,因此您将无法使用不在 A 中的 B 的方法,除非您将其显式转换为 B

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-23
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    • 2012-11-23
    • 2021-10-25
    相关资源
    最近更新 更多