A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 化学反应 中级黑马   /  2014-8-27 10:47  /  649 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。
在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。
抽象类
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例:
1

2

3

4

5

6

7

8

9

public abstract class GenericServlet implements Servlet, ServletConfig, Serializable {

    // abstract method

    abstract void service(ServletRequest req, ServletResponse res);


    void init() {

        // Its implementation

    }

    // other method related to Servlet

}




当HttpServlet类继承GenericServlet时,它提供了service方法的实现:
1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public class HttpServlet extends GenericServlet {

    void service(ServletRequest req, ServletResponse res) {

        // implementation

    }


    protected void doGet(HttpServletRequest req, HttpServletResponse resp) {

        // Implementation

    }


    protected void doPost(HttpServletRequest req, HttpServletResponse resp) {

        // Implementation

    }


    // some other methods related to HttpServlet

}





0 个回复

您需要登录后才可以回帖 登录 | 加入黑马