1.使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),
其中含有click() / dbclick() / keyUp() / keyDown()等方法。
ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
Button类中添加addListener(ButtonListener l)方法。
interface ButtonListener
{
public void click();
public void dbclick();
public void keyUp();
public void keyDown();
}
abstract class ButtonAdapter implements ButtonListener{
public void dbclick(){
}
public void keyUp(){
}
public void keyDown(){
}
}
class ButtonListener extends ButtonAdapter
{
public void click(){
System.out.println("i click");
}
}
class Button
{
private ButtonListener listener;
public void addListener(ButtonListener lsn){
this.listener=lsn;
}
public void clickb(){
listener.click();
}
}
class AdapterDemonew
{
public static void main(String [] args){
Button btn1=new Button();
ButtonListener blr=new ButtonListener();
btn1.addListener(blr);
btn1.click();
}
}
作业2
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
答:多态就是多种形态,继承中,父类引用子类对象,father s=new son();
接口中,接口引用该接口的类所创建的对象。
因为属性是有数据的,是原来就有的,函数是构造出来的方法,不存储数据,所以可以覆盖。