标签:java
/**
*定义三个接口,然后定义一个接口继承三个接口,创建对象
*/
//创建 白 富 美 三个接口
interface IWhite{
public void white(); //定义一个空的方法
}
interface IRich{
public void rich();
}
interface IBeauti{
public void beauti();
}
interface IRun{ //新增加一个类
public void run();
}
//定义一个IWRB 接口 同时继承三个接口
interface IWRB extends IWhite, IRich ,IBeauti{
}
//创建一个Womanter 实现IWRB
class WomanStart implements IWRB {
//实现三种方法
public void white(){
System.out.println("I‘m white");
}
public void rich(){
System.out.println("I‘m rich");
}
public void beauti(){
System.out.println("I‘m beauti");
}
}
class WomanStartRun extends WomanStart implements IRun{ //通过继承和实现的方法实现 扩张
public void run(){
System.out.println("小跑!!!!");
}
}
//创建土豪类
class RichMan{
public void marry (IWRB girl){ //声明一个marry方法 如果符合条件则……
System.out.println("喝个茶!!!");
}
public void run (IRun run){
run.run();
}
}
//创建一个类
class RichManDemo{
public static void main(String [] args ){
RichMan m = new RichMan(); //new 一个土豪
WomanStart w = new WomanStart() ; //new 一个WomanStart
m.marry (w); //调用marry
WomanStartRun ru = new WomanStartRun();//new 一个WomanStartRun
m.run(ru);
}
}
接口
接口的出现降低耦合性 ---解耦合
Adapter : 适配器 抽象类。
适配器模式
——————————————————————————————
如果接口中的方法较多,而使用接口的时候却只关心其中一个或者几个方法,(关心的方法较少),
如果采用常规手段,就需要对每个方法都要加以实现,可以创建一个类型来实现接口,对不关心的方法进行空
实现,对关心的方法保持不变、定义的新类继承抽象类后,将所关心的方法加以实现即可。
此种模式就称为 适配器模式,常用于UI 设计中的按钮点击事件的处理中。
多态
------------------
定义:
某一类事物的多种存在形态。
对继承的类来讲,使用父类类型引用子类的对象。
对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。
好处和作用:
多态的存在提高了程序的扩展性和后期可维护性
前提:
需要存在继承或者实现关系
要有覆盖操作
内部类
————————————————————————————
将一个类定义在另一个类的里面,对里面那个类就称为内部类(内置类,嵌套类)。
访问特点:
内部类可以直接访问外部类中的成员,包括私有成员。
而外部类要访问内部类中的成员必须要建立内部类的对象
内部类的位置
内部类定义在成员位置上
可以被private static成员修饰符修饰。
被static修饰的内部类只能访问外部类中的静态成员。
内部类定义在局部位置上
也可以直接访问外部类中的成员。
同时可以访问所在局部中的局部变量,但必须是被final修饰的。
[作业1]
------------------------------------
使用抽象类和接口实现适配器模式设计。涉及的类和接口分别为ButtonListener(接口),
其中含有click() / dbclick() / keyUp() / keyDown()等方法。
ButtonAdapter(按钮适配器类),适配器中对非click()方法进行默认实现。
Button类中添加addListener(ButtonListener l)方法。
[作业2]
------------------------------------
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
/**
* [作业1]
*定义接口函数
*/
// 先定义 四种接口
interface ButtonListener{
void click(); //单击 public 可以省略
void dbClick(); //双击
void keyUp(); //按键释放
void keyDown (); //按键按下
}
class Button{
//按钮监听器
ButtonListener listener ; //表示Buttonlistener按钮的处理程序就是 listener
//添加监听器
public void addListener(ButtonListener l){
this.listener = l ;
}
//模拟单击事件
public void click(){
//处理单击事件
listener.click();
}
}
//适配器
abstract class ButtonListenerAdapter implements ButtonListener{
//对接口进行空实现
public void dbClick(){
}
public void keyUp(){
}
public void keyDown(){
}
}
//新建一个监听器实现类
class MyListener extends ButtonListenerAdapter{
public void click(){
System.out.println(" click one ~~~ !");
}
}
class AdapterDemo{
public static void main(String[] args){
Button btn = new Button(); // 新建一个监听器
MyListener Ml = new MyListener(); //新建一个类
btn.addListener(Ml);
btn.click();
}
}
/**
*运行结果
* C:\Users\CC\Desktop>java AdapterDemo
* click one ~~~ !
*/
[作业2]
阐述什么是多态。
为什么函数可以覆盖,而属性不能覆盖?
答:
定义:某一类事物的多种存在形态。
对继承的类来讲,使用父类类型引用子类的对象。
对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。
属性是资产,容纳数据的地方,函数是行为,不容纳和存储数据,所以函数可以被覆盖,而属性不能。标签:java
原文地址:http://670597669.blog.51cto.com/10018785/1774354