zoukankan      html  css  js  c++  java
  • JavaSe之适配器(Adapter)

    概述:

      所谓适配,即找到自己所想要的,而又没有其他多余的成分在里面,比如想要实现某个接口里面的指定方法,而不用实现其它无用的方法就可以用到适配这种思想

    相关知识:

      1.抽象类(abstract修饰的类)没必要实现父类(接口)中的所有抽象方法

      2.普通类必须要实现父类(接口)中的所有抽象方法

      3.如果在继承某个接口的时候,只想要实现里面指定的方法,而不是实现所有的抽象方法,有一个方法就是通过一个Abstract类去实现该接口,并且覆盖里

    面的所有抽象方法,写一个空方法体(这样做之后这个抽象类里面的方法都是具体方法了)。之后再继承这个抽象类,实现里面的指定方即可。

    例子:

      要求:实现CarFunchtion接口中的指定方法。

    CarFunction.class

    public interface CarFunction {
        public abstract void start();
        
        public abstract void end();
        
        public abstract boolean speed();
        
    }

    AbstractCar.Class去实现抽象接口中的所有方法,且每一个方法都是一个空方法体

    public abstract class AbstractCar implements CarFunction{
    
        @Override
        public void start() {
        }
    
        @Override
        public void end() {
        }
    
        @Override
        public boolean speed() {
            return false;
        }
        /**
         * 公共的操作定义在父类接口面
         * @param same
         */
        public void sameOpe(Same same){
            same.doTheSame();
            
        }
        
        public void changeColor(String color){
            System.out.println("我想changeColor");
            sameOpe(new Same(){
                
                @Override
                public void doTheSame() {
                    System.out.println("改变成" + color);
                }
                
            });
        }
        /**
         * 这里面定义需要变化的操作
         * @author hsyang
         *
         */
        static interface Same{
            public void doTheSame();
        }
    }

    RedCar.Class:重写指定的方法即可

    public class RedCar extends AbstractCar{
        @Override
        public void start() {
            System.out.println("start启动了");
        }
    }
  • 相关阅读:
    将vs2010换成vs2012的主题
    写了个油猴脚本
    Myeclipse10下的access数据库配置
    点击按钮触发声音(xaml实现)
    自定义的可拖动窗体
    在博客添加时钟
    定时器写的闪光字
    C语言I博客作业02
    c语言|博客作业02
    关于软件工程的一些疑问
  • 原文地址:https://www.cnblogs.com/studyCenter/p/7536087.html
Copyright © 2011-2022 走看看