abstract class 和 interface 的区别

简介: 1、interface中只能包含静态常量和抽象方法,且静态常量是public  final static 的,抽象方法是 public abstract 的。

1、interface中只能包含静态常量和抽象方法,且静态常量是public  final static 的,抽象方法是 public abstract 的。

2、abstract class 除了能包含 interface 所能包含的东西外,还能包含具体类能包含的任何东西。

3、抽象类可以实现接口,抽象类可以继承抽象类,抽象类可以继承具体类,接口可以继承接口。

4、接口主要用于系统框架的设计,用来定义模块直接的通信接口。而抽象类可以用来实现代码重用。设计模式中的模版方法模式就利用了抽象类。假如在项目中有多个Servlet中都要进行权限判断、日志记录等相同操作,就可以顶一个抽象类,在抽象类中就可以采用模版方法模式定义一个具体方法,在该具体方法中实现这个相同操作,同时定义一个抽象方法以供子类实现自己特有的操作。伪代码如下:

public abstract class BaseServlet extends HttpServlet{
	protected final void service(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
		日志记录;
		权限判断
		if(有权限){
			doService(request,response);
		}else{
			//提示权限不足
		}
	}
	
	protected abstract void doService(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException;
}
这里如果用接口就不能实现了。


目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
当语言遇见智慧火花:GPT家族历代模型大起底,带你见证从平凡到卓越的AI进化奇迹!
【10月更文挑战第6天】随着自然语言处理技术的进步,GPT系列模型(Generative Pre-trained Transformers)成为该领域的明星。从GPT-1的开创性工作,到GPT-2在规模与性能上的突破,再到拥有1750亿参数的GPT-3及其无需微调即可执行多种NLP任务的能力,以及社区驱动的GPT-NeoX,这些模型不断进化。虽然它们展现出强大的语言理解和生成能力,但也存在如生成错误信息或偏见等问题。本文将对比分析各代GPT模型的特点,并通过示例代码展示其部分功能。
406 2
|
XML Java Unix
setting.xml配置文件详解
maven是JAVA开发人员经常使用的工具之一,最核心的配置文件是setting.xml,本文对setting.xml做简要分析,梳理xml每个节点的说明。
1216 0
|
11月前
|
前端开发 JavaScript vr&ar
WebGL
WebGL(Web Graphics Library)是一种用于在网页上渲染交互式 3D 和 2D 图形的 JavaScript API,它基于 OpenGL ES 2.0 标准,为开发者提供了一种在浏览器中创建高性能图形应用的途径
【计算巢】网络拓扑结构的比较分析:星形、环形与总线型
【5月更文挑战第31天】本文介绍了网络的三种常见拓扑结构:星形、环形和总线型。星形拓扑易于管理和维护,信息传递高效;环形拓扑结构简单,信息环状传递,但环中断可能导致网络瘫痪;总线型成本低、扩展易,但总线故障会全局影响。理解其特点有助于根据需求选择合适的网络结构。
901 1
|
缓存 JavaScript 安全
nodejs里面的http模块介绍和使用
综上所述,Node.js的http模块是构建Web服务的基础,其灵活性和强大功能,结合Node.js异步非阻塞的特点,为现代Web应用开发提供了坚实的基础。
344 62
|
11月前
|
数据采集 算法 vr&ar
基于国产化芯片的神经腕带技术方案,实现META神经腕带效果,创新交互方式
唯理科技发布了一款基于自研WLS128芯片的神经腕带产品,能够通过采集前臂肌肉神经电与肢体运动信息实现自然手势识别。该产品具备微弱肌电信号采集、多通道SEMG数据采集、低功耗设计、高采样率、专业算法支持等特性,支持多种数据格式导出及第三方数据接口,应用场景广泛。唯理科技是国内少数拥有自研芯片的脑电脑机接口技术厂商,致力于为客户提供一体化的软硬件解决方案。
|
12月前
|
消息中间件 NoSQL Redis
Redis Stream
10月更文挑战第20天
165 2
|
机器学习/深度学习 人工智能 算法
机器学习【教育领域及其平台搭建】
机器学习【教育领域及其平台搭建】
307 6
SpringBoot中的内容协商,颠覆你的认知
本文将介绍 SpringMVC 中内容协商,可能有朋友听过,没听过的估计觉得很陌生,不管怎么样,先告诉你一点,这篇是非常重要的一个知识点,一定不要错误,坚持看完,一定会有大量收获,
|
芯片
芯片验证 | UVM的domain机制
芯片验证 | UVM的domain机制
254 0