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;
}
}; 展开
今天看到这样的写法很不理解,抽象类不是不能实例化对象吗?是不是只有抽象类的时候才能这样写呢?还是说其他普通类也可以这样写。这是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;
}
}; 展开
2个回答
展开全部
seAdapter ba = new BaseAdapter();
如果这样写的话,是不被允许的,因为BaseAdapter没有自身的实现,也就是说抽象类是无法在自身里面实现。
seAdapter ba = new BaseAdapter(){...};
如果是这样写的话{...}这里就有了BaseAdapter的实现,不过不是通常那样,我要先建个类,然后extends BaseAdapter,而是直接把实现用这种语法写在匿名实现里面了。
这样介绍,可以理解吧
如果这样写的话,是不被允许的,因为BaseAdapter没有自身的实现,也就是说抽象类是无法在自身里面实现。
seAdapter ba = new BaseAdapter(){...};
如果是这样写的话{...}这里就有了BaseAdapter的实现,不过不是通常那样,我要先建个类,然后extends BaseAdapter,而是直接把实现用这种语法写在匿名实现里面了。
这样介绍,可以理解吧
追问
但我在测试,在Vs上是不行的,难道C#没有这样写法?
追答
不好意思,C#我不熟悉,我只是在java里面测试这样的写法是没有问题的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询