zoukankan      html  css  js  c++  java
  • 接口实现多态的原理

    接口中的方法都是什么样子的呢?

    public interface ImageSave {
        //接口中的方法可以有返回值类型
        //接口里的方法中可以有参数
        String getName();
        //String getType(String Type);
        void save();
        //void saveDouble(String Type,long kb);
    
    }
    public class GIFSaver implements ImageSave{
    
        @Override
        public String getName() {        
            return "GIF";
        }
    
        @Override
        public void save() {
            System.out.println("将图片保存成GIF格式");
        }
    
    }
    public class JPEGSaver implements ImageSave{
    
        @Override
        public String getName() {
            return "JPEG";
        }
    
        @Override
        public void save() {
            System.out.println("将图片保存成JPEG格式");
            
        }
    
    }
    public class PNGSaver implements ImageSave{
    
        @Override
        public String getName() {
            return "PNG";
        }
    
        @Override
        public void save() {
            System.out.println("将图片保存成PNG格式");
            
        }
    
    }
    public class ImageTypeChooser {
    
        public static ImageSave getSaver(String type){
            if(type.equalsIgnoreCase("GIF")){
                return new GIFSaver();
            }else if(type.equalsIgnoreCase("JPEG")){
                return new JPEGSaver();
            }else if(type.equalsIgnoreCase("PNG")){
                return new PNGSaver();
            }else{
                return null;
            }
            
            
            
        }
        
    }

    实现类赋予接口其实还是面向对象思想在起作用,客户是对厨师下命令的,厨师来做不同的菜,接口延伸到的是厨师,厨师来做菜

    public class User {
    
        public static void main(String[] args) {
            System.out.println("用户选择了GIF格式");
            ImageSave GIFSaver = ImageTypeChooser.getSaver("GIF");
            GIFSaver.save();
            
            System.out.println("用户选择了JPEG格式");
            ImageSave JPEGSaver = ImageTypeChooser.getSaver("JPEG");
            JPEGSaver.save();
            
            System.out.println("用户选择了PNG格式");
            ImageSave PNGSaver = ImageTypeChooser.getSaver("PNG");
            PNGSaver.save();
        }
    }

  • 相关阅读:
    几种排序方法详解(选择排序、冒泡排序、插入排序、快速排序)
    几种排序方法详解(选择排序、冒泡排序、插入排序、快速排序)
    Cookie
    ajax
    layer弹出框
    Session
    Cookie
    顺时针打印矩阵
    常用判断
    基础学习
  • 原文地址:https://www.cnblogs.com/lonely-buffoon/p/5573549.html
Copyright © 2011-2022 走看看