第六天java基础多态和适配器

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

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

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

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

//按钮监听器接口

interface ButtonListener {

public void onClick(); // 单击事件

public void onDbclick(); // 双击事件

public void onKeyDown(); // 按键按下

public void onKeyUp(); // 按键释放

}

// 按钮监听器适配器

abstract class ButtonAdapter implements ButtonListener {

public void onDbclick() {//抽象类,适配器空实现,还有一个onClick()没有实现

}

public void onKeyUp() {

}

public void onKeyDown() {

}

}

class MyListener extends ButtonAdapter {

public void onClick() {

System.out.println("i click one !");

}

}

class YourListener extends ButtonAdapter {

public void onClick() {

System.out.println("you click one !");

}

}

// 按钮

class Button {

// 按钮的监听器

private ButtonListener listener;//按钮的处理程序就是这个listener,把上面的接口定义为了按钮的成员(按钮是有这些属性的)

// 添加监听器

public void addListener(ButtonListener lsn) {

this.listener = lsn;

}

// 模拟单击事件

public void click() {

// 处理单击事件

listener.onClick();//找到单击事件的处理方法,调用监听器的onClick方法,on指的是什么事件发生时

}

// 模拟双击事件

public void dbClick() {

listener.onDbclick();

}

}

class AdapterDemo {

public static void main(String[] args) {

// button1

Button btn1 = new Button();

MyListener l = new MyListener();

btn1.addListener(l);

btn1.click();

// button2

Button btn2 = new Button();

YourListener yl = new YourListener();

// btn2.addListener(yl);

// btn2.click();

//还可以这样写

btn2.addListener(new ButtonAdapter(){//关键,匿名内部类对象

public void onClick() {

System.out.println("you click one !除了上面常规的,还可以用匿名内部类对象");

}

});

btn2.click();

}

}

2,阐述什么是多态。为什么函数可以覆盖,而属性不能覆盖?

(1)多态:某一类事物的多种存在形态。对于接口来说,可以使用接口引用实现了该接口的类所创建的对象;对于继承来说,是使用父类类型来引用子类的对象。

(2)属性是资产,是容纳数据的地方,函数是行为,不容纳和存储数据,所以函数可以被覆盖,而属性不能。

时间: 2024-12-20 21:35:36

第六天java基础多态和适配器的相关文章

黑马程序员——Java基础---多态、内部类、异常、包

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.多态 多态(Polymorphism)按字面的意思就是“多种状态”.在面向对象语言中,接口的多种不同的实现方式即为多态.引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作.简单的说,就是一句话:允许将子类类型的对象赋值给父类类型的引用. 猫这个对象对应的类

黑马程序员——java基础--多态

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 模板方法设计模式: 解决的办法:当功能内部一部分是现实确定,一部分是现实不确定的,这时间不可把不确定的部分暴漏出去,让子类实现. 实例:统计一个程序的的运行时间 思路:程序的结束时间减去程序的开始时间 abstract class Gettime{ public final void getTime(){//这段功能用final限制 long start = System.currentTim

Java基础---多态、内部类、异常、包

第一讲     多态 多态可以理解为事物存在的多种体现形态. 例:动物中猫,狗.猫这个对象对应的类型是猫类型,如:猫 x = new猫(); 同时猫也是动物中的一种,也可以把猫称为动物.动物  y = new猫(); 那么动物就是猫和狗具体事物中抽取出来的父类型.父类型引用指向了子类对象. 一.多态的体现        1.父类的引用指向了自己子类的对象. 2.父类的引用也可以接收自己的子类对象. 如:   Animal a = new Cat(); 其中就将父类型的 a 引用指向了子类的对象.

黑马程序员---java基础-----多态、内部类、异常、包

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 第一讲     多态 多态可以理解为事物存在的多种体现形态. 例:动物中猫,狗.猫这个对象对应的类型是猫类型,如:猫 x = new猫();同时猫也是动物中的一种,也可以把猫称为动物.动物  y = new猫();那么动物就是猫和狗具体事

java基础---多态(一)

1.什么是多态? 同一个引用类型,使用不同的实例而执行不同操作(父类引用,子类对象) 2.如何实现多态 1-使用多态实现思路 2-编写父类 3-编写子类,子类重写父类方法 运行时,使用父类的类型,子类的对象 向上转型 Pet pet = new Dog(); 自动类型转换 注意:实现多态的两个要素:子类重写父类方法.使用父类的类型 3.实现多态的两种形式 使用父类作为方法形参实现多态 使用父类作为方法返回值实现多态 4.使用父类作为方法形参实现多态 举例: public class Master

java基础多态

- 多态存在的三个条件:继承.重写.父类变量引用子类对象 - 多态的概念:举个例子说人类分黄种人,黑人,白人,这就是多态 语法:Object(父类) obj = new Person(); - .动态绑定 语法:定义: public static void m(Object x){ System.out.println(x.toString());//绑定的方法 实现: public static void main(String [] args){ m(new Object()); m(new

java基础2:抽象类、接口与多态

关于Java基础的文章,我觉得写得还可以,以前发在了我其它的博客了,肯定是原创,现在再分享给大家出来. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Java基础——封装、继承、多态

Java基础--封装.继承.多态 --小实例快速成长 抽象: 1.目的:将复杂的东西简单化,将繁乱的内容有序化. 2.过程:对相同.相似的东西合而为一,对不同的内容进行归门别类. 3.结果:类.接口. 封装: 1.目的:化零为整,将零散的内容进行归属,进行权限控制. 2.过程:将某对象的属性.方法(功能)统一到其名下,并分别设置.适当的权限进行控制管理. 3.结果:对象,接口. 继承: 1.求大同存小异:在一个系列内,大部分都有的内容,就划归父类:子类将父类的内容继承过来,可以有自身的一些发展和

【Java基础】多态

首先先来个总结: 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是为多态而准备的.这是我们最后一个概念,也是最重要的知识点. 多态的定义:指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而采用多种不同的行为方式.(发送消息就是函数调用) 实现多态的技术称为:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法. 多态的作用:消除类型之间的耦合关系. 现实中,关于多态的例子不胜