随笔 - 0  文章 - 122  评论 - 9  0

1、直接

抽象类 对象 = new 抽象类(){

                                        //重写此抽象类的抽象方法

                           };

例子:

private TimerTask t1 = new TimerTask(){

@Override
public void run() {
// TODO Auto-generated method stub
//在此实现该抽象方法
}

};

外层

public class TimerActivity2 extends Activity {
/** Called when the activity is first created. */
public Timer timer = new Timer();
private TimerTask t1 = new TimerTask(){

@Override
public void run() {
// TODO Auto-generated method stub

}

};

@Override
public void onCreate(Bundle savedInstanceState) {
..}
}

2、抽象类 对象 = new 子类();

      接口/实现类 对象= new 实现类()

  class 子类 extends 抽象类{

//实现此抽象类的抽象方法即可。

}

class 实现类 implements 接口{

//实现此接口的抽象方法即可

}

例子:

public class TimerActivity2 extends Activity {
/** Called when the activity is first created. */
public Timer timer = new Timer();

private TimerTask tTask = new MyTimerTask();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

}

//子类
class MyTimerTask extends java.util.TimerTask {

@Override
public void run() {
// TODO Auto-generated method stub
//在此实现该抽象方法       
}

}
........
.......
}

接口时:

......
//某处
// MySensorEventListener mSensorEventListener;
SensorEventListener mSensorEventListener;
.....
//某处,定义和赋值可以写在一句话里面
mSensorEventListener = new MySensorEventListener();

.............
.......
//某处
class MySensorEventListener implements SensorEventListener {

@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
// TODO Auto-generated method stub

}

@Override
public void onSensorChanged(SensorEvent event) {
// TODO Auto-generated method stub
//在此做方法的实现即可  
}
}

3、直接把对象创建出来,比如在参数中需要用到某个类对象的时候,除了上述方法以外,也可以直接把此对象创建出来。

public void method(class obiect,,);

()中就可以这么写

(new (抽象类/接口(){

//在这实现抽象方法

}))

例子:

    

b1.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View arg0) {
// 定义计时器
timer = new Timer();
timer.schedule(
new TimerTask() {

// TimerTask 是个抽象类,实现的是Runable类
@Override
public void run() {
                         
}

},
1000, 200);
}
});
 此例子中,
new Button.OnClickListener()是一个接口对象,实现onClick这个接口的抽象方法。记住!不需要这个要让外部activity实现接口。
new TimerTask() 是一个抽象类对象,里面也要实现run()这个抽象类的抽象方法。
posted on 2011-05-05 16:39 snowdrop 阅读(...) 评论(...) 编辑 收藏