【发布时间】:2015-11-17 04:24:38
【问题描述】:
我看到一个视频使用
ListAdapter theAdapter = new ArrayAdapter()而不是ArrayAdapter theAdapter = new ArrayAdapter()。为什么?为什么
ListAdapter theAdapter = new ArrayAdapter()在 构造函数没有构造ListAdapter的实例?
【问题讨论】:
我看到一个视频使用
ListAdapter theAdapter = new ArrayAdapter()而不是ArrayAdapter theAdapter = new ArrayAdapter()。为什么?为什么
ListAdapter theAdapter = new ArrayAdapter()在 构造函数没有构造ListAdapter的实例?
【问题讨论】:
我会给你一个简单的例子。它的所有继承和父子的东西。 研究下面给出的代码,你会得到一切。
class Animal {}
class Dog extends Animal {}
class Cat extends Animal {}
class Test
{
public static void main(String[] args)
{
Animal a = new Animal();
Dog d = new Dog();
Animal a2 = d; // OK, since Dog IS-A Animal
Dog d2 = a; // not OK; what if a is a Cat?
}
}
所以父类的对象可以持有子类的对象。反之亦然。
在您的情况下,ListAdapter 是父接口,ArrayAdapter 是它的间接子类。
您可以在此处查看完整的层次结构 ListAdater 和 ArrayAdapter
【讨论】:
B myObj = new A();。接口也是如此