ServletContext context=getServletContext();
这里的ServletContext是接口。
Context是ServletContext的类型
getServletContext
是ServletContext
接口中返回Servlet信息的方法。
这里我的问题是我们正在为接口创建一个上下文对象。我们如何为接口创建一个对象?
如果不是,我们正在为ServletContect创建对象,我们在这里做了什么 ServletContext和getServletContext()之间的映射是什么?
请提前一步一步解释?
答案 0 :(得分:0)
您的问题是How can we create an object for interface?
Answer is :
我们不能创建接口对象(任何接口)但我们可以分配接口实现类对象的引用(这是有效的,并在OOP中提供多态和继承)
我建议阅读 Head First Core Java 以更好地理解所有这些内容。
我们无法在界面后调用 new
关键字,并以分号Ex结尾。
ServletContext context = new ServletContext(); //invalid. cannot end with semicolon
但经过几次阅读后,你会发现一个像
这样的构造/语法ServletContext context = new ServletContext() { // see semicolon absent after ()
// and all methods here with some definition
};
这是一个实现ServletContext接口的匿名类。
如果您看到像
这样的构造Thread t = new Thread() { //semicolon is absent after () bracket
};
表示它是一个扩展类Thread的匿名类。
答案 1 :(得分:0)
getServletContext
不是ServletContext接口的方法。 ServletConfig正在实施GenericServlet接口的方法,因此HttpServlet中可以使用GenericServlet扩展ServletContext。 GenericServlet可能由Web服务器实现,它们可能会在{{3}}中返回该类的对象。
希望这个解释有所帮助。
答案 2 :(得分:0)
我认为您的问题是如何从界面创建对象。
答案不能。
但是我们可以使用接口名称,然后可以将接口的引用分配给类对象。
(这意味着我们可以创建匿名类(在对象内部))。
有关更多详细信息,请阅读javatpoint界面课程。