zoukankan      html  css  js  c++  java
  • 【c#笔记】c#与java的差异:接口定义实现

    ===============================================

     2021/4/1_第1次修改                       ccb_warlock

     

    ===============================================

    本周在整理公司代码中,发现原来java接口的隐式实现与c#并不一样,故这里进行试验的记录。

     


    c#

    1.显示定义接口实现

    c#中通过“:”来显示定义某个类是接口的实现。

    public interface IFileService
    {
        void saveFile(Stream stream);
    }
    public class FileServiceImpl : IFileService
    {
        public void saveFile(Steam stream)
        {
            // todo
        }
    }

    java

    1.显示定义接口实现

    java中通过“implements”来显示定义某个类是接口的实现。

    public interface IFileService {
        void saveFile(MultipartFile file);
    }
    public class FileServiceImpl implements IFileService {
    
        public void saveFile(MultipartFile file){
            // todo
        }
    }

    2.隐式定义接口实现

    java中还支持在调用接口的时候匿名定义接口实现

    @Data
    public class User{
        private String name;
    
        private String displayName;
    }
    public interface UserCall {
        void call(User user, String name);
    }
    public void updateUser(User user, UserCall p){
        System.out.println("1");
        p.call(user, user.getName());
        System.out.println("3");
    }
    updateUser(user1, (u, name) -> {
        u.setDisplayName(name);
        System.out.println("displayName: " + u.getDisplayName());
    });

    控制台输出如下:

    总结:

    关于java支持匿名定义接口实现,应用的时候感觉比c#更灵活,不过具体的使用还得根据场景来,我目前还是倾向于尽量使用显示定义接口。

     

     

  • 相关阅读:
    随时间的反向传播算法 BPTT
    实时绘制训练过程中损失和准确率的变化趋势 python keras jupyter notebook
    测试集的准确率为什么高于训练集的准确率?
    Adagrad和Stochastic梯度下降
    使用http-server在本地搭建一个HTTP服务器
    JS Promise
    npm淘宝镜像
    git子模块submodule
    git本地与远程分支
    git别名
  • 原文地址:https://www.cnblogs.com/straycats/p/14608751.html
Copyright © 2011-2022 走看看