下面定义了一个接口,其实现类是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!!!!");
}
}
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);
本质还是要靠实现类的追问
User userLogin=service.login(id,pwd);
本质还是要靠实现类的追问
能说的具体点儿吗?
追答在创造service对象时,用的是实现类的实例。
不能直接new service() 吧
第4个回答 2012-08-11
可以用匿名的内部类
Service service = new Service(
{
@override
。。。
});
Service service = new Service(
{
@override
。。。
});