问题描述
- 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实现吗?
解决方案
该接口,需要对应类实现,你说得对,用 implements
在另一个类中,声明接口变量 ,调用其方法,是可以的,因为接口方法被实现了。
你也可以理解为,是调用的实现接口的那个类的对象。
如果接口类没被实现,会报异常,提示你先实现接口。才能调用接口方法。
(你写接口就是让用的,其他类想调用它你说可以不可以。前提接口中的方法已被实现)
(这里面声明接口对象或说实现接口类的对象,是为了调用接口方法而不是要实现接口。)
解决方案二:
接口不能用于声明变量的
解决方案三:
正确调用接口:
现有接口 StudentDao ,实现接口的类 StudentDaoImpl ,该类中重写实现接口的方法
在其他类中或程序中想调用接口方法的话:
StudentDao studentDao = new StudentDaoImpl();
//另一中写法
StudentDao studentDao;
studentDao = new StudentDaoImpl();
引入接口和实现接口对应的包,就能调用接口中的方法了
时间: 2024-12-01 08:20:56