qq_36083613
彧子吱吱吱吱
采纳率0%
2018-09-22 03:05 阅读 664

java中HttpServletRespone接口中的方法为什么能直接用,接口里的方法不都是抽象的吗?

java中HttpServletRespone接口中的方法为什么能直接用,接口里的方法不都是抽象的吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • baidu_41670414 baidu_41670414 2018-09-22 13:25

    首先,我们要清楚一个概念,那就是多态.
    而为何接口中的抽象方法能直接执行,也就是因为我们实际上是在执行HttpServletResponse接口的子实现类重写的方法.
    HttpServletResponse接口的子实现类的对象,在第一次请求服务器时已被创建.我们只关注方法的实现,而不用过于关注接口的实现类是谁.

    点赞 2 评论 复制链接分享
  • liyiming2017 稀有气体 2018-09-26 01:54

    接口A可以有B、C多种实现,通过接口A去声明对象,得到的对象a可能是B的实现也可以是C的实现,看你new的是B还是C。
    接口是稳定的,但是具体接口中方法的逻辑是什么就取决于你new的是哪个实现类了。

    这就是面向对象的多态。换个角度,也是我们常说的面向接口编程。针对接口,可以提供多个实现。

    其它问题也可以私信问我,知无不言。

    点赞 2 评论 复制链接分享
  • tongkaiming tongkaiming 2018-09-22 06:50

    如List也是接口
    LIst list=new ArrayList<>();
    list就可以使用方法了

    点赞 1 评论 复制链接分享
  • CoingSun CoingSun 2018-09-22 07:44

    接口里的方法不一定是抽象的,只要有一个方法是抽象的它就是接口
    HttpServletResponse接口定义了很多发送响应的方法都是写好可以直接用的
    只要引入javax.servlet.http包就可以

    点赞 1 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2018-09-22 08:50

    HttpServletRespone接口是抽象的没错,但是HttpServletRespone代表的对象可不是抽象的。
    你调用的是一个实现了这个接口的具体的类的方法。

    反过来说,如果抽象的接口没有办法通过具体的对象调用,那这种接口还有个屁用。

    点赞 评论 复制链接分享
  • wushucheng18 诚哥丿 2018-09-26 08:40

    这里涉及到多态、面向接口编程的概念,抽象类 和 接口 虽然不能直接实例化但是却可以指向子类对象,说的有点绕,请参考mvc模式中spring注入service对象。

    点赞 评论 复制链接分享
  • shenxianhui88 shenxianhui88 2021-01-10 20:24

    说实话这些回答问题的连问题是什么都没有搞懂,不一定比提问题的知道的多。

    因为 HttpServletRequest 和 HttpServletResponse 是 Servlet 的重要接口之一,你只需要使用接口的方法即可,不需要关心接口的实现,Tomcat 服务器有自己的实现

    点赞 评论 复制链接分享

相关推荐