gpt4 book ai didi

java - Java中具有不同引用类型的对象类型有什么优点?

转载 作者:太空宇宙 更新时间:2023-11-04 06:30:53 24 4
gpt4 key购买 nike

我知道,在处理 Java 中的多态性时,可以为对象使用与对象类型不同的声明类型。例如:

    Parent foo = new Child(); 

当声明的类型是接口(interface)时,我主要看到它,例如:

    Map<Integer,BigInteger> memo = new TreeMap<Integer,BigInteger>();    

我在人们的 Java 代码中经常看到这种情况。当 foo 是子对象时,将其声明为父对象有什么好处?我也明白,如果我们这样做, foo 就不能再调用任何未声明为抽象或在 Parent 中定义的方法。让我困惑的是,当我们可以同时拥有声明的类型和实际的类型 Child 并且仍然作为参数传递给需要 Parent 参数对象的方法时,我看到这是完成的。例如:

    Child fooNew = new Child();
public void showObj(Parent o){
System.out.println(o); }
showObj(fooNew);

那么什么给出了?在什么情况下,为一个对象使用不同的声明类型和实际类型会有好处?我的书说它对于泛型编程很重要,但没有解释。我看到它一直被使用,但不知道为什么。它甚至似乎也有一些自己的缺点。

最佳答案

Parent foo = new Child(); 

当您后来意识到有一个更好的 child 可以使用时,优势就会发挥出来。因此,无需更改任何其他代码,您就可以使用更好的 child :

Parent foo = new BetterChild(); 

BetterChild 显然应该是 Parent

的子级

关于java - Java中具有不同引用类型的对象类型有什么优点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26134179/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com