(白话通俗讲解)Java实现接口的类的对象赋值给接口的理解

原创博客,转载请注明出处。

相信小伙伴们都知道面向接口编程的好处,这里我不再叙述。重点是怎么理解这种困扰新手的方式。编程嘛,肯定是为了解决实际问题,如果不能很好的和生活中的事例相结合,单纯炫技把代码弄得很复杂,我是不推荐的。

废话不多说,先来看一段代码:

public interface JustInterface {

    void justMethod(Object object);

}

public class JustInterface Impl implements JustInterface{

    @Override
    public void justMethod(Object object) {
        // TODO Auto-generated method stub
        do something…
    }

}

// 在Main.class里可以这样声明和初始化:
public static void main( String[] args ) {

    JustInterface justInterface = new JustInterfaceImpl();
    justInterface.justMethod;

}

对于这段挺正经的面向接口编程的代码,包括我自己,也一直处于似懂非懂的状态,但是具体为什么会出现这种方式,我一定要想清楚才会安心。

接下来请允许我用一个很俗的例子来说明这种方式。

故事是这样的,双手受伤的独居宅男,想吃放在面前饭桌上的青椒炒牛肉。(别问为什么,宅男就是要吃青椒炒牛肉,也别问哪来的青椒炒牛肉,继续看就行了),我们需要一种方法,最好是人机接口,可以帮助这位宅男不用手轻松吃到青椒炒牛肉。市面上有一种机械臂,他对外提供了一个人机接口。而接口里面有一个方法,这个方法听起来很符合宅男的要求:夹起机械臂面前的物体-移动到指定坐标点-然后松开。看来只需要把这个机械臂放在饭桌上就行了。于是双手受伤的独居宅男买了一个机械臂(怎么买的,你不用知道),想通过这个机械臂来吃青椒炒牛肉。整个欢喜的过程如下:

// 在机械臂公司里的组装线是这样的:
public interface 人机接口 {

    void 传递物体(宅男嘴里的位置); 

} 

public class 机械臂 implements 人机接口 {

    @Override
    public void 传递物体(宅男嘴里的位置) {
        夹起机械臂面前的物体;
        移动到 宅男嘴里的位置;
        松开物体;
    }
}

// 在宅男家里:
main 函数 {
    人机接口 = new 机械臂;  //宅男准备开始使用带有人机接口的实现了传递物体方法的机械臂
    机械臂.传递物体(宅男嘴里的位置); //机械臂夹起了放在面前的青椒炒牛肉,移动到宅男嘴里的位置,然后松开了青椒炒牛肉。
}

对比一下文章开头给出的代码:

public interface JustInterface {

    void justMethod(Object object);

}

public class JustInterface Impl implements JustInterface{

    @Override
    public void justMethod(Object object) {
        // TODO Auto-generated method stub
        do something…
    }

}

// 在Main.class里可以这样声明和初始化:

public static void main( String[] args ) {
    JustInterface justInterface = new JustInterfaceImpl();

    justInterface.justMethod;
}

怎么样,这样的通俗事例对于理解是不是简单多了?和实际结合起来解决问题,我觉得是编程的首要核心。
至于宅男为什么不把头埋下去用嘴直接吃青椒炒牛肉呢?可能是长期玩游戏,脖子僵硬吧。

后记:宅男在机械臂的包装盒子里发现了一份迷之说明书,在说明上发现了如何设置机械臂的动作,于是邪恶的思想涌入了宅男的大脑。。。

作为第一篇博客,处于礼貌,介绍一下自己。
在韩国留学,本科是计算机系(没有好好学,很后悔把青春浪费在俱乐部,夜店。。。不过当时真的很high,哈哈哈),研究生主修计算流体力学。
毕业后回归老本行,在韩国首尔就业,先后换了两家公司,经历了两个项目,目前就职于RemarkableSoft,开发项目为韩国国家科学搜查技
术局的数字认证系统(DAS)。我毕竟只有一年半经验,有说错的地方,欢迎指正和评论。

以后我都将用通俗易懂的生活例子来写博客。谢谢。
点赞