java基础第六天
2016-05-15 20:13
387 查看
使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),
其中含有click() / dbclick() / keyUp() / keyDown()等方法。
ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
Button类中添加addListener(ButtonListener l)方法。
*/
/*
interface ButtonListener {
public abstract void click();
public abstract void dbclick();
public abstract void keyUp();
public abstract void keyDown();
}
abstract class ButtonAdapter implements ButtonListener {
public void dbclick(){};
public void keyUp(){};
public void keyDown(){};
}
class MyButton extends ButtonAdapter {
String name;
public MyButton (String name) {
this.name = name;
}
public void click(){
System.out.println(name);
}
}
class Button {
ButtonListener l;
public void addListener(ButtonListener l) {
this.l = l;
}
public void click(){
l.click();
}
}
class Demo {
public static void main(String[] arge) {
Button b = new Button();
b.addListener(new MyButton("1"));
b.click();
Button b2 = new Button();
b2.addListener(new MyButton("2"));
b2.click();
}
}
*/
/*
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
答:
定义:某一类事物的多种存在形态。
对继承的类来讲,使用父类类型引用子类的对象。
对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。
属性是资产,容纳数据的地方,函数是行为,不容纳和存储数据,所以函数可以被覆盖,而属性不能。
*/
/*
class Person {
String name;
public void show() {
System.out.println(name);
}
}
class Man extends Person{
String name;
public void show() {
System.out.println(super.name);
System.out.println(name);
}
}
class Demo {
public static void main(String[] arge) {
Person p = new Man();
p.name = "ererzizi";
p.show();
}
}
*/
其中含有click() / dbclick() / keyUp() / keyDown()等方法。
ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
Button类中添加addListener(ButtonListener l)方法。
*/
/*
interface ButtonListener {
public abstract void click();
public abstract void dbclick();
public abstract void keyUp();
public abstract void keyDown();
}
abstract class ButtonAdapter implements ButtonListener {
public void dbclick(){};
public void keyUp(){};
public void keyDown(){};
}
class MyButton extends ButtonAdapter {
String name;
public MyButton (String name) {
this.name = name;
}
public void click(){
System.out.println(name);
}
}
class Button {
ButtonListener l;
public void addListener(ButtonListener l) {
this.l = l;
}
public void click(){
l.click();
}
}
class Demo {
public static void main(String[] arge) {
Button b = new Button();
b.addListener(new MyButton("1"));
b.click();
Button b2 = new Button();
b2.addListener(new MyButton("2"));
b2.click();
}
}
*/
/*
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
答:
定义:某一类事物的多种存在形态。
对继承的类来讲,使用父类类型引用子类的对象。
对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。
属性是资产,容纳数据的地方,函数是行为,不容纳和存储数据,所以函数可以被覆盖,而属性不能。
*/
/*
class Person {
String name;
public void show() {
System.out.println(name);
}
}
class Man extends Person{
String name;
public void show() {
System.out.println(super.name);
System.out.println(name);
}
}
class Demo {
public static void main(String[] arge) {
Person p = new Man();
p.name = "ererzizi";
p.show();
}
}
*/
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树