java 内部接口 模式_java基础第六天_接口与适配器模式、多态、内部类

[作业1]

------------------------------------

使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),

其中含有click() / dbclick() / keyUp() / keyDown()等方法。

ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。

Button类中添加addListener(ButtonListener l)方法。

答:

/*

定义一个接口,让接收到值判断做出相应动作,接口接收的值需要一个监视器接收

注意问题:a.接口实现全部实现即使是空实现。b.定义一个监视器接收值用接口类

*/

//定义接口

interface  ButtonListener{

public void click();

public void dbclick();

public void keyUp();

public void keyDown();

}

//定义按钮适配器类 适配器中对非click方法进行默认实现

abstract class ButtonAspter implements ButtonListener{

public void click(){}

public void dbclick(){}

public void keyUp(){}

public void keyDown(){}

}

//如果是单击,实现单击事件

class ButtonClick extends ButtonAspter{

public void click(){

System.out.println("单击");

}

}

//如果是双击,实现双击事件

class ButtonDbClick extends ButtonAspter{

public void dbclick(){

System.out.println("双击");

}

}

//监听器

class Button{

private ButtonListener ll;

//添加监听器

public void addListener(ButtonListener ll){

this.ll=ll;

}

//模拟单击事件

public void click(){

ll.click();

}

//模拟双击事件

public void dbclick(){

ll.dbclick();

}

}

class AdaptDemo{

public static void main(String[] args){

//单击

Button bt=new Button();

ButtonClick bb=new ButtonClick();

bt.addListener(bb);

bt.click();

//双击

Button bt2=new Button();

ButtonDbClick bb2=new ButtonDbClick();

bt2.addListener(bb2);

bt2.dbclick();

}

}

[作业2]

------------------------------------

阐述什么是多态。

为什么函数可以覆盖,而属性不能覆盖?

a.同一消息可以根据不同对象给出不同的行为方式。同一事物不同形态。

b.对于一个对象来说属性是自身的东西,属于资产不可覆盖,而函数是行为方法,不容纳数据,可以覆盖。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值