我正在探索一些示例代码,我找到了以下代码:
LoginService接口:
public interface LoginService extends Serializable {
default boolean isLoggedIn (final HttpServletRequest req) {
return null != PortalUtil.getUserId(req);
}
}
一个LoginServiceFactory,它包含一个实现LoginService的嵌套LoginServiceImpl类
public class LoginServiceFactory implements Serializable {
private volatile LoginService loginService = null;
private final class LoginServiceImpl implements LoginService {
@Override
public boolean isLoggedIn(final HttpServletRequest req) {
/** this is the part I don't understand */
return LoginService.super.isLoggedIn(req);
}
}
}
我不明白在LoginService.super.isLoggedIn(req)
中调用了哪种方法。据我所知,它正在调用接口isLoggedIn(req)
的超级接口LoginService
。但我认为这是不对的,因为超级界面是Serializable
。有人可以帮帮我吗?
修改 我已经用完整的例子编辑了我的问题。我不认为它真的重复,因为这个例子比我在这个网站上找到的要复杂一点。
答案 0 :(得分:0)
当你在内班做
时super.foo();将调用内部类的超类的foo()方法
致电
Outer.super.foo();将调用名为Outer的外部类的超类的foo()方法。
,如
class Outer extends OuterSuper {
class Inner {
public void someMethod() {
Outer.super.foo();
}
}
}