1.使用抽象类和接口实现适配器模式设计。
public class Button { private ButtonListener listener; public void addListener(ButtonListener listener){ this.listener = listener; } public void click(){ listener.click(); } } public interface ButtonListener { public void click(); public void dbclick(); public void keyUp(); public void keyDown(); } public abstract class ButtonListenerAdapter implements ButtonListener{ @Override public void click() { System.out.println("适配器对click方法的默认实现"); } @Override public void dbclick() { System.out.println("适配器对dbclick方法的默认实现"); } @Override public void keyDown() { System.out.println("适配器对keydown方法的默认实现"); } @Override public void keyUp() { System.out.println("适配器对keyup方法的默认实现"); } } public class MyButtonListener extends ButtonListenerAdapter{ } public class Main { public static void main(String[] args) { Button b = new Button(); MyButtonListener listener = new MyButtonListener(); b.addListener(listener); b.click(); } }
2.阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
答:
a.什么是多态
多态就是从不同的角度去看数据,这些数据构成一个对象的多种状态,比如:员工的特点是有薪水和编号
,但要站在生物的角度去看员工那就是有鼻子有眼睛.对象没有变,只是观察的角度改变了,这就是多态.
b.为什么函数能覆盖属性却不能
属性保存的是数据,是表示一个对象的重要资产,故只能被继承但不能被修改.
时间: 2024-11-06 11:35:34