作业1]
------------------------------------
使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),
其中含有click() / dbclick() / keyUp() / keyDown()等方法。
ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
Button类中添加addListener(ButtonListener l)方法。
[作业2]
------------------------------------
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
---------------------------------------------------------------------------------------------
interface ButtonListener
{
public void click();
public void dbclick();
public void keyUp();
public void keyDown();
}
public abstract ButtonAdapter implements ButtonListener
{
public abstract void click();
public void dbclick(){
}
public void keyUp(){
}
public void keyDown(){
}
}
public class MyListener extends ButtonAdapter{
public void click(){
System.out.println("iclick");
}
}
public class Button
{
private MyListener Listener;
public void addListener(MyListener Listener){
this.Listener=Listener
}
}多态是一个类的多种形态,也就是声明同一个类用不同的子类实现,该类会表现出不同的形式。
接口的原理同上
函数可以覆盖,是因为函数仅仅是一种操作,子类当然可以选择与父类不尽相同的方式实现同一件事。而属性是鉴别一个类不同于其他的唯一方式,父类的属性如果可以被修改则父类存在的价值会被抹杀。
转载于:https://blog.51cto.com/11102728/1747806