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

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

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

废话很少说,先来看一段代码:ide

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;

}
复制代码

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

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

故事是这样的,双手受伤的独居宅男,想吃放在面前饭桌上的青椒炒牛肉。(别问为何,宅男就是要吃青椒炒牛肉,也别问哪来的青椒炒牛肉,继续看就好了),咱们须要一种方法,最好是人机接口,能够帮助这位宅男不用手轻松吃到青椒炒牛肉。code

市面上有一种机械臂,他对外提供了一我的机接口。而接口里面有一个方法,这个方法听起来很符合宅男的要求:夹起机械臂面前的物体-移动到指定坐标点-而后松开。看来只须要把这个机械臂放在饭桌上就好了。接口

因而双手受伤的独居宅男买了一个机械臂(怎么买的,你不用知道),想经过这个机械臂来吃青椒炒牛肉。整个欢喜的过程以下:游戏

// 在机械臂公司里的组装线是这样的:
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;
}
复制代码

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

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

相关文章
相关标签/搜索