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

如果A abc = new B()AB类有继承关系,使用引用类型A而不是B,如果B使用,有什么好处?还有哪些方法现在可以B访问对象(所有AB方法或其他)?此外,如果 A 和 B 都有相同的方法,B 会覆盖它,但是如果它们有不同的方法,对象可以在这里访问谁的方法?


胡说叔叔
浏览 230回答 2
2回答

万千封印

假设你有: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)。

慕工程0101907

我们以 Java Collections API 为例。为简洁起见,请考虑以下层次结构:Collection -> ArrayListCollection 有方法 Collection::isEmptyArrayList 有方法 ArrayList::add现在,这些陈述是有效的:的实例Collection可以使用该方法isEmpty()。的实例ArrayList可以使用方法isEmpty()和add()。现在这取决于您想对实例做什么。如果您需要添加新元素,请使用允许它的实现。如果没有,最好使用您真正需要的最小实现或对象。示例:如果您需要从 DAO 返回的 List 的大小,请使用Collection替代List或其任何实现:Collection collection = dao.getListFromDatabase();int size = collection.size();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java