/** *定义三个接口,然后定义一个接口继承三个接口,创建对象 */ //创建 白 富 美 三个接口 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] 阐述什么是多态。 为什么函数可以覆盖,而属性不能覆盖? 答: 定义:某一类事物的多种存在形态。 对继承的类来讲,使用父类类型引用子类的对象。 对于接口来说,可以使用接口引用实现了该接口的类所创建的对象。 属性是资产,容纳数据的地方,函数是行为,不容纳和存储数据,所以函数可以被覆盖,而属性不能。
时间: 2024-11-05 22:43:30