为了账号安全,请及时绑定邮箱和手机立即绑定

Java不同的引用类型和类对象

Java不同的引用类型和类对象

胡说叔叔 2021-06-15 17:35:29
如果A abc = new B()和A,B类有继承关系,使用引用类型A而不是B,如果B使用,有什么好处?还有哪些方法现在可以B访问对象(所有A和B方法或其他)?此外,如果 A 和 B 都有相同的方法,B 会覆盖它,但是如果它们有不同的方法,对象可以在这里访问谁的方法?
查看完整描述

2 回答

?
万千封印

TA贡献1891条经验 获得超3个赞

假设你有:


public class A {


    public void a(){


    }

}


public class B extends A{


    public void b(){


    }

}

你不能使用 B b = new A();


您可以使用A a = new A();Here you have access toa()方法。


您可以使用A a = new B();Here you have access toa()方法。


您可以使用B b = new B();Here 您可以访问这两种a(), b()方法。


那么有什么好处A a = new B()呢?


假设您有类 B、C、D、E,并且它们都扩展了类 A 或实现了接口 A。现在您可以A a = new B(); A a = new C(); A a = new D()在运行时检查类型,然后将对象转换为特定的类类型,因此您无需声明每种类型有 3 个变量。所有 A 类型变量都有一个容器(变量),它也是子(B、C、D)。


查看完整回答
反对 回复 2021-06-30
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

我们以 Java Collections API 为例。为简洁起见,请考虑以下层次结构:

Collection -> ArrayList

现在,这些陈述是有效的:

  • 的实例Collection可以使用该方法isEmpty()

  • 的实例ArrayList可以使用方法isEmpty()add()

现在这取决于您想对实例做什么。如果您需要添加新元素,请使用允许它的实现。如果没有,最好使用您真正需要的最小实现或对象。

示例:如果您需要从 DAO 返回的 List 的大小,请使用Collection替代List或其任何实现:

Collection collection = dao.getListFromDatabase();

int size = collection.size();


查看完整回答
反对 回复 2021-06-30
  • 2 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信