在Java中规定: 一个具体类要实现一个接口的时候必须要实现接口中全部的抽象方法。
我们能否让一个具体类实现一个接口的时候 只是实现它接口中的部分的抽象方法呢?
适配器模式就是用来掘金一个具体类只想实现接口中部分抽象方法的这种问题。
import java.awt.Frame;
public class MyFrame extends Frame{
public MyFrame(String title){
super(title);
}
}
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
public abstract class WindowAdapter implements WindowListener {
@Override
public void windowOpened(WindowEvent e) {
}
@Override
public void windowClosing(WindowEvent e) {
}
@Override
public void windowClosed(WindowEvent e) {
}
@Override
public void windowIconified(WindowEvent e) {
}
@Override
public void windowDeiconified(WindowEvent e) {
}
@Override
public void windowActivated(WindowEvent e) {
}
@Override
public void windowDeactivated(WindowEvent e) {
}
}
import java.awt.event.WindowEvent;
public class MyWindowListener extends WindowAdapter{
@Override
public void windowClosing(WindowEvent e){
System.exit(0);//退出JMVM
}
}
import java.awt.Frame;
public class Main {
public static void main(String[] args) {
MyFrame mf = new MyFrame("我的窗口程序");
mf.setSize(1000,1000); //设置窗口大小
mf.setLocation(200,200); //设置窗口位置
mf.setVisible(true); //默认不可见 改为可见
mf.addWindowListener(new MyWindowListener()); //添加监听器
}
}
这种方式 通过创建 一个抽象类WindowAdapter,平庸实现了目标接口WindowListener,
让具体类MyWindowListener继承WindowAdapter这个抽象类,然后在覆盖自己所需要的方法。