2 cai772088996 cai772088996 于 2016.04.30 14:33 提问

java的接口可以直接拿来声明变量?

public interface IUserManage {
public void addUser(User user);
public void modifyUser(User user);
public void deleteUser(User user);
}

现在有这么个接口,然后在另一个没有实现此接口的类里看到如下这句:
private IUserManage userManage;
在这个类里,直接声明了userManage,并且userManage可以直接调用接口里的那三个方法

接口不是只能用来implements实现吗?

3个回答

niaonao
niaonao   Rxr 2016.04.30 14:44
已采纳

该接口,需要对应类实现,你说得对,用 implements
在另一个类中,声明接口变量 ,调用其方法,是可以的,因为接口方法被实现了。
你也可以理解为,是调用的实现接口的那个类的对象。
如果接口类没被实现,会报异常,提示你先实现接口。才能调用接口方法。
(你写接口就是让用的,其他类想调用它你说可以不可以。前提接口中的方法已被实现)
(这里面声明接口对象或说实现接口类的对象,是为了调用接口方法而不是要实现接口。)

cai772088996
cai772088996 谢谢,没看全,此接口的确又被另一个类实现过
一年多之前 回复
dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.04.30 14:43

接口不能用于声明变量的

niaonao
niaonao   Rxr 2016.04.30 14:49

正确调用接口:
现有接口 StudentDao ,实现接口的类 StudentDaoImpl ,该类中重写实现接口的方法

在其他类中或程序中想调用接口方法的话:
StudentDao studentDao = new StudentDaoImpl();
//另一中写法
StudentDao studentDao;
studentDao = new StudentDaoImpl();

引入接口和实现接口对应的包,就能调用接口中的方法了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!