为什么接口对象直接可以调用接口中的方法?

erzhanz2 2015-08-17 06:57:09
今天做web开发遇到了一个奇怪的问题,有一个接口类MemberService,有一个接口类的实现类MemberServiceImpl,MemberService中有一方法fun();现在有一个MemberService的对象memberService,为何出现这条语句:
memberService.fun();中间仔细找了,没看到memberService=new MemberServiceImpl()这样的语句。请高手指教
...全文
550 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Sticker_maddie 2017-09-15
  • 打赏
  • 举报
回复 1
动态代理 自动实例化对象
秦家小小神 2017-07-16
  • 打赏
  • 举报
回复
我今天学习策略模式的时候也发现了类似的问题。
package strategyMode;

import strategyMode.imp.FlyWithWing;

public class Test {
	/**
	 * 同包下的接口方法可以直接创建对象来调用而无需实现
	 * 但是main中调用fly()会报空指针异常,所以这个发现没有卵用。。
	 * 想要调用其子类的方法,还是得导入这个接口的子类并实例化
	 */
//	private FlyingStrategy flyingStrategy;
//	public void fly(){
//		flyingStrategy.performFly();
//	}
	
	private FlyingStrategy flyingStrategy = new FlyWithWing();
	
	public void fly(){
		flyingStrategy.performFly();
	}
	
	public static void main(String[] args) {
		
		Test t = new Test();
		t.fly();
	}
	
}
所以楼主的那条语句是可以出现的,不会有编译错误。但不知道楼主具体是怎么调用的?
Yaphets_VJ 2015-08-19
  • 打赏
  • 举报
回复
spring IOC容器管理 ,已经把对象实例化了。。
erzhanz2 2015-08-18
  • 打赏
  • 举报
回复
最后自己弄明白了 原来是 spring机制
erzhanz2 2015-08-17
  • 打赏
  • 举报
回复
引用 1 楼 u011157055 的回复:
跟jquery一个原理吧
请问能说的具体点吗
erzhanz2 2015-08-17
  • 打赏
  • 举报
回复
请问能说的具体点吗
哎_干嘛呢 2015-08-17
  • 打赏
  • 举报
回复
跟jquery一个原理吧

87,968

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧