假设B类扩展了A类,我想为B声明一个变量,什么更有效,为什么?
B b ORA<B> b.发布于 2010-06-09 23:53:32
你混淆了两个不同的概念。
class B extends A {
}意味着B是A。
如果您有类似于A<B>的东西,这意味着您的类A被定义为
class A<T> {
}这意味着类A是一个泛型类。
例如,(过于简化)
class List<T> {
}因此,如果T取值String,则List<String>表示字符串的列表
所以A<B>并不意味着B extends A。
您应该使用B b。
发布于 2010-06-09 23:48:13
使用B b。A<B>是一个模板类,它使用B作为类型,例如:
List<String>是一个字符串列表,所以List<B>应该是一个B列表,objects.WeakReference<String>是对字符串的弱引用,所以WeakReference<B>是对B对象的弱引用。发布于 2010-06-09 23:52:53
如果B扩展了A,那么我将尽可能多地使用A类型。
A小部件=新B();
这降低了代码的其他部分对您的实现可能做出的假设。
https://stackoverflow.com/questions/3010754
复制相似问题