適配器模式:抽象類繼承接口,重寫其中不須要的方法爲空方法,定義子類繼承抽象類,重寫沒有實現的方法,這些方法就是咱們須要的方法。
java
public interface ButtonListener { public void click(); public void dbclick(); public void keyUp(); public void keyDown(); } public abstract class ButtonAdapter implements ButtonListener { @Override public void keyUp() { } @Override public void keyDown() { } } public class Button { private ButtonListener bl; public void addListener(ButtonListener bl) { this.bl = bl; }; public void click() { bl.click(); } public void dbClick() { bl.dbclick(); } } class ButtonMove extends ButtonAdapter { @Override public void click() { System.out.println("click"); } @Override public void dbclick() { System.out.println("double click"); } } public static void main(String[] args) { Button b = new Button(); b.addListener(new ButtonMove()); b.click(); b.dbClick(); }
多態:基於繼承或實現,指父類引用指向子類變量。ide
父類的方法能夠被子類重寫,而屬性不能,父類屬性在父類對象內存區,子類屬性在子類對象內存區
this