[作业1]
------------------------------------
使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),
其中含有click() / dbclick() / keyUp() / keyDown()等方法。
ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
Button类中添加addListener(ButtonListener l)方法。
[作业2]
------------------------------------
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
--------------------------------------------------------------------------------------
1,
/**
使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),
其中含有click() / dbclick() / keyUp() / keyDown()等方法。
ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
Button类中添加addListener(ButtonListener l)方法。
*/
//接口
interface ButtonListener
{
void click();
void dbclick();
void keyUp();
void keyDown();
}
//抽象类
abstract class ButtonAdapter implements ButtonListener
{
public void dbclick()
{
System.out.println("OnDbclick");
}
public void keyUp()
{
System.out.println("OnKeyUp");
}
public void keyDown()
{
System.out.println("OnKeyDown");
}
}
//监听器具体实现
class MyListener extends ButtonAdapter
{
public void click()
{
System.out.println("MyOnClick");
}
}
//创建一个按钮,并添加监听器
class Button
{
private ButtonListener blstr;
public void addListener(ButtonListener blisten)
{
blstr = blisten;
}
//模拟一个单击事件
public void myClick()
{
blstr.click();
}
//模拟一个双击事件
public void myDbClick()
{
blstr.dbclick();
}
}
class ButtonAdapterDemo
{
public static void main(String[] args)
{
//创建一个监听器
MyListener mylstr = new MyListener();
//创建一个按钮
Button bt = new Button();
//添加一个监听器到按钮中
bt.addListener(mylstr);
bt.myClick();
bt.myDbClick();
}
}
2,
[作业2]
------------------------------------
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
1)多态是面向对象的一大特性,具体定义是指某一类事物的多种存在形态,例如猫,狗都属于动物这个类
我们可以这样创建猫对象:猫 x = new 猫(),也可以 动物 y = new 猫();
在面向对象编程中,对继承而言,多态就是父类的引用和子类的引用都可以指向子类对象;对接口而言,多态就是
接口引用指向具体实现类对象。
2)在java中,成员属性存放在堆内存当中,是具体实体,属于类的“资产”,保留着类的数据,我们在创建子类对象时,jvm会在
堆内存中创建该子类所继承的父类对象空间,用于保存父类的成员属性,并且让子类对象中的super成员指向父类对象空间,
子类属性保存在子类对象区当中。当我们建立父类引用指向子类对象时,该引用调用的属性是堆中父类对象的成员属性。
子类引用调用的是子类的成员属性。所以属性是类的资产,不能被覆盖。
而函数存在与方法区当中,虽然也是永久区,但是可以改变,并且不接收和存储数据。当需要调用函数时,会将函数压栈,
调用结束后弹栈,不会保留。所以子类可以覆盖父类的函数。
本文出自 “菜鸟成就数据之路” 博客,转载请与作者联系!
IT十八掌作业_java基础第六天_接口与适配器模式、多态、内部类
原文地址:http://liubx.blog.51cto.com/11235064/1771309