下面为java的代码,在调用抽象类ji时,eclipse提示有错误,表示ji已经被定义(红色的地方)。不知道是为什么?
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class ccc extends JFrame 
{
JButton jb1,jb2;
JTextArea jta;
JPanel jp1,jp2;
public ccc()
{
jp1=new JPanel();
jp2=new JPanel();
jb1=new JButton("读文件");
jb2=new JButton("保存");
        jta=new JTextArea();


jp1.add(jb1);
jp1.add(jb2);

jp2.add(jta);
jb1.addActionListener(new ji(){ public void actionPerformed(ActionEvent arg0) {
try {
if(arg0.getSource()==jb1){
FileReader fr=new FileReader("f:/work/file1.txt");
BufferedReader br=new BufferedReader(fr);
String s;
while((s=br.readLine())!=null)
{
jta.append(s+"\n");
}

}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

});
jb2.addActionListener(new ji(){ @Override
public void actionPerformed(ActionEvent arg0)
{
try {
if(arg0.getSource()==jb2)
{
FileWriter fw=new FileWriter("f:/work/file2.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write(jta.getText());
bw.flush();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

});

this.add(jp2);
this.add(jp1);

this.setLayout(new GridLayout(2,1));


this.setTitle("NOTEPAD");
this.setSize(400,300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args)  
{
ccc abc=new ccc(); }


}
abstract class ji implements ActionListener
{ @Override
abstract public void actionPerformed(ActionEvent arg0);

}