• 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启动了");
        }
    }
  • 相关阅读:
    Codeforces Round #652 (Div. 2) A. FashionabLee(几何)
    轻量应用服务器如何通过修改apache配置文件实现非https的访问多域名到不同子目录程序?
    在Windows环境下使用hexo搭建博客以及部署到gitee / github
    使用WordPress搭建个人手机博客(阿里云)
    访问自己服务器的ip地址
    php环境无法上传文件的解决方法
    SSRF漏洞
    CSRF全家桶(含义,防御,攻击)
    JS实现HTML实体与字符的相互转换
    CentOS系统下载及应用部署
  • 原文地址:https://www.cnblogs.com/studyCenter/p/7536087.html
Copyright © 2020-2023  润新知