public class Test {
public static void main(String[] args) {
//匿名内部类
Animal a = new Animal(){
@Override
public void cry() {
System.out.println("狗汪汪汪的叫~");
}
};
}
}
abstract class Animal{
public abstract void cry();
}
常见使用场景:作为一个参数传给方法
public class Test {
public static void main(String[] args) {
// Swimming s1 = new Swimming(){
// @Override
// public void swim() {
// System.out.println("狗游得很快");
// }
// };
// go(s1);
go(new Swimming(){
@Override
public void swim() {
System.out.println("狗游得很快");
}
});
//设计一个方法,可以接收Swimming接口的一切实现类对象进来参加游泳比赛
public static void go(Swimming s){
System.out.println("开始----------");
s.swim();
}
}
interface Swimming{
void swim();
}
开发中真实使用场景
public class Test {
public static void main(String[] args) {
//搞清楚匿名内部类在开发中的真实使用场景
//GUI编程
//1.创建窗口
JFrame win = new JFrame("登录界面");
JPanel panel = new JPanel();
win.add(panel);
JButton btn = new JButton("李科翰cnm");
panel.add(btn);
//给按钮绑定单击事件监听器
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(win,"李科翰是sb");
}
});
win.setSize(400,400);
win.setLocationRelativeTo(null);
win.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
win.setVisible(true);
}
}