黑马程序员技术交流社区

标题: Java抽象类与接口的区别 第一部分 [打印本页]

作者: 化学反应    时间: 2014-8-27 10:47
标题: Java抽象类与接口的区别 第一部分
很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。
在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。
抽象类
抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以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

}










欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2