java中接口直接调用方法?

下面定义了一个接口,其实现类是serviceImpl。User是一个已定义好的用户类
public interface service{
public User login(int id,String pwd);
}
在另一个类中有一句代码直接是User userLogin=service.login(id,pwd); //id ,pwd构造器传入

现在疑惑来了,尽管service有个实现类serviceImpl,但是上面这个怎么用接口直接调用接口中的方法呢?而不是通过实现类serviceImpl来调用!很矛盾,跪求高手解惑

service.login(xx,xx)直接调用就行了,实例需是子类对象。。这样调用会有问题, 如果多个类实现了这个接口,那么你的这个调用就会有问题,就是说,使用实现类去调用这个方法,实现的是具体的功能,没有必要用service.login()
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-11
在另一个类中的service的类型是接口service,但构造是用serviceImpl的构造构造函数构造的,你查看下另一个类的代码,此外,service也可以是由spring构造注入的,看下spring的配置文件或者注释确认下追问

spring这个东东我还没学过

追答

那确认下有没有用spring,简单记住spring是帮你构造类,并且把构造好的类给你用的就行了

第2个回答  推荐于2017-09-25
调用方法:
interface Interface //接口 {
String ShowMessage(String MSG);

}
class ClassItf implements Interface

{
public ClassItf()
{

}
public String ShowMessage(String MSG)

{
System.out.print(MSG);

return MSG;

}

}

class usingItf
{

public String getstring;

public void usingItf(Interface inf,String MSG)

{
getstring=inf.ShowMessage(MSG);

}

}
public class Test

  {

  public static void main(String args[])

  {

  ClassItf newClassItf=new ClassItf();

  usingItf aa =new usingItf();

  aa.usingItf(newClassItf,"This is the firstpage!!!!");

  }

  }
第3个回答  2012-08-11
service service = new serviceImpl();

User userLogin=service.login(id,pwd);

本质还是要靠实现类的追问

能说的具体点儿吗?

追答

在创造service对象时,用的是实现类的实例。
不能直接new service() 吧

本回答被网友采纳
第4个回答  2012-08-11
可以用匿名的内部类

Service service = new Service(
{
@override
。。。
});

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网