码迷,mamicode.com
首页 > 其他好文 > 详细

接口实现多态的原理

时间:2016-06-10 13:43:28      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

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

技术分享

 

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();
    }
}

 

技术分享

接口实现多态的原理

标签:

原文地址:http://www.cnblogs.com/lonely-buffoon/p/5573549.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!