1、直接
抽象类 对象 = new 抽象类(){
//重写此抽象类的抽象方法
};
例子:
private
TimerTask t1
=
new
TimerTask(){
@Override
public void run() {
// TODO Auto-generated method stub
//在此实现该抽象方法
}
};
@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) {
..}
}
/** 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
//在此实现该抽象方法
}
}
........
.......
}
/** 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
//在此做方法的实现即可
}
}
// 某处
// 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 );
}
});
@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()这个抽象类的抽象方法。