java语法,在线等java高手解答seAdapter ba = new BaseAdapter() { };究竟怎样的情况下可以这样写...

BaseAdapter是一个抽象类。今天看到这样的写法很不理解,抽象类不是不能实例化对象吗?是不是只有抽象类的时候才能这样写呢?还是说其他普通类也可以这样写。这是Andr... BaseAdapter 是一个抽象类。

今天看到这样的写法很不理解,抽象类不是不能实例化对象吗?是不是只有抽象类的时候才能这样写呢?还是说其他普通类也可以这样写。这是Android里面的某段代码。应该属于java的
语法吧
究竟怎样的情况下可以这样写...
seAdapter ba = new BaseAdapter() {

@Override
public int getCount() {
Log.d("getCountming", "" + imageIDs.length);
return imageIDs.length;
}

@Override
public Object getItem(int arg0) {
Log.d("getItemming", "" + arg0);
return null;
}

@Override
public long getItemId(int arg0) {
Log.d("getItemIdming", "" + arg0);
return 0;
}

@Override
public View getView(int arg0, View arg1, ViewGroup arg2) {
Log.d("getViewming", "");
ImageView iv = new ImageView(Sample_5_8.this);
iv.setImageResource(imageIDs[arg0]);
iv.setScaleType(ImageView.ScaleType.FIT_XY);
iv.setLayoutParams(new Gallery.LayoutParams(188, 250));
return iv;
}
};
展开
 我来答
小浩123123d55c828
2014-08-01 · TA获得超过790个赞
知道小有建树答主
回答量:694
采纳率:50%
帮助的人:386万
展开全部
seAdapter ba = new BaseAdapter();

如果这样写的话,是不被允许的,因为BaseAdapter没有自身的实现,也就是说抽象类是无法在自身里面实现。

seAdapter ba = new BaseAdapter(){...};
如果是这样写的话{...}这里就有了BaseAdapter的实现,不过不是通常那样,我要先建个类,然后extends BaseAdapter,而是直接把实现用这种语法写在匿名实现里面了。

这样介绍,可以理解吧
追问
但我在测试,在Vs上是不行的,难道C#没有这样写法?
追答
不好意思,C#我不熟悉,我只是在java里面测试这样的写法是没有问题的
xabbca
2014-08-01 · 超过17用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:50万
展开全部
后面的花括号中的代码块,是一个匿名实现。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式