首页 > 其他分享 >抽象类与接口

抽象类与接口

时间:2024-08-08 09:07:10浏览次数:5  
标签:实现 子类 接口 抽象 抽象类 方法

目录

抽象类的概念

1.什么是抽象(与具体类相对)

Java专门提供了一种机制,名为“抽象方法”。它属于一种不完整的方法,只含有一个声明,没有方法主体。下面是抽象方法声明时采用的语法:
abstract void X();
包含了抽象方法的一个类叫作“抽象类”。如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。否则,编译器会向我们报告一条出错消息。
若一个抽象类是不完整的,那么一旦有人试图生成那个类的一个对象,由于不能安全地为一个抽象类创建属于它的对象,所以会从编译器那里获得一条出错提示。通过这种方法,编译器可保证抽象类的“纯洁性”,我们不必担心会误用它。

2.为什么要抽象

抽象方法和抽象类看上去是多余的,对于抽象方法,不知道如何实现,定义一个空方法体不就行了吗,而抽象类不让创建对象,看上去只是增加了一个不必要的限制。

引入抽象方法和抽象类,是Java提供的一种语法工具,对于一些类和方法,引导使用者正确使用它们,减少被误用。

使用抽象方法,而非空方法体,子类就知道他必须要实现该方法,而不可能忽略。

使用抽象类,类的使用者创建对象的时候,就知道他必须要使用某个具体子类,而不可能误用不完整的父类。

无论是写程序,还是平时做任何别的事情的时候,每个人都可能会犯错,减少错误不能只依赖人的优秀素质,还需要一些机制,使得一个普通人都容易把事情做对,而难以把事情做错。抽象类就是Java提供的这样一种机制。

抽象类的好处

父类知道每个子类都要做某个行为,但每个子类要做的情况不一样,父类就定义成抽象方法,交给子类去实现重写,我们设计这样的抽象类,就是为了更好的支持多态

抽象类和接口的区别

参数 抽象类 接口
默认的方法和实现 可以有默认的方法实现 完全抽象,根本不存在方法的实现
实现方式 子类用extends关键字来继承抽象类,如果子类不是抽象类的话,它需要实现父级抽象类中所有抽象方法,父类中非抽象方法可重写也可不重写 子类用implements去实现接口,需要实现接口中所有方法
构造器 抽象类可以有构造器(构造器不能用abstract修饰)
与正常java类的区别 不能被实例化 接口和正常java类是不同的类型
访问修饰符 抽象方法可以用public、protected、default修饰 默认public,不能用其他修饰符
main方法 可以有并运行 没有
多继承 继承一个类和实现多个接口 接口只能继承一个或者多个接口
添加新方法 如果在抽象类中添加新非abstrac的方法,可以直接添加,因为非abstract方法无需在子类中实现,如果是abstact方法,则需要改变子类的代码,也要实现这个方法 只要在接口中添加方法,实现它的类就要改变,去实现这个新添加的方法
速度 比接口快 稍微慢点,因为需要寻找类中实现他的方法

标签:实现,子类,接口,抽象,抽象类,方法
From: https://www.cnblogs.com/yangcurry/p/18348226

相关文章

  • 深入理解接口测试:实用指南与最佳实践(三)API文档解析及编写测试用例
    ​​您好,我是程序员小羊!前言这一阶段是接口测试的学习,我们接下来的讲解都是使用Postman这款工具,当然呢Postman是现在一款非常流行的接口调试工具,它使用简单,而且功能也很强大。不仅测试人员会使用,开发人员也会经常使用。这节课是Postman分析的请求和响应数据,完成ihrm......
  • 接口设计有哪些军规需要遵守
    1.签名机制目的:防止API数据篡改。方法:使用MD5等算法生成签名,包含请求参数、时间戳和密钥。安全性:加入时间戳以避免请求被重复使用,设置请求过期时间。2.数据加密重要性:保护敏感信息,如密码、银行卡号等。实现:使用AES算法在前端加密,后端解密并校验。3.IP白名单目的:限制......
  • 5-7折优惠电影票API接口,微客云提供电影票api
    正规对接途径和考虑因素API供应商:一些大型的在线票务平台:如猫眼、淘票票等,如果能与他们达成合作,可能获得稳定且正规的接口,但通常门槛较高(主要面向一些大型的、正规的、有一定规模和背景的商业伙伴,且有严格的审核流程和商务合作流程等)。影院院线自己:如果是直接和影院院线建......
  • 微信小程序-手机验证码短信登录接口(防薅方法)
    前言开发的小程序手机号短信验证码登录这一个功能,入参只有手机号。结局盗刷、恶意刷。解决方案1.nginx只允许referer是小程序来源的请求#你的接口location^~/api/{if($http_referer!~*"^https://servicewechat.com/【你的小程序appid】/\d+/page-fram......
  • 2024美团官方霸王餐API接口
    在数字化日益深入的今天,餐饮行业正经历着一场前所未有的变革。作为行业内的领军企业,美团不断推出创新服务以优化用户体验,提升商家运营效率。其中,2024年美团官方推出的霸王餐API接口便是这一趋势下的重要产物。本文将从接口的背景、功能、优势、应用场景以及未来展望等方面,深入剖析......
  • 接口
    接口的概念:接口是一个全部由抽象方法组成的集合,接口需要用interface定义,里面只能有抽象的方法和常量。接口体现的是事物扩展的功能,在Java中,类定义了一个实体,包括实体的属性,实体的行为。而接口定义了一个实体可能发生的动作,只有一个声明,没有具体的行为。当一个方法在很多......
  • Java SE核心技术——10接口
    接口就是一种规范或标准,只要符合这个标准都可以通用,接口的表现在于对行为的抽象。就好比插座,每个厂商生产的插座我们都可以用,这是因为他们有同一个标准,这里插座就是接口。//接口的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了一个接口public......
  • Spring Boot 统一接口响应格式的正确姿势
    01、背景介绍熟悉web系统开发的同学可能比较熟悉,目前绝大多数的互联网软件平台基本都是前后端分离的开发模式,为了加快前后端接口对接速度,一套完善且规范的接口标准格式是非常有必要的,不仅能够提升开发效率,也会让代码看起来更加简洁、好维护。今天这篇文章,我们一起来学习一......
  • SAP PO接口报文保存到内表中
    有一个需求,接收PI传数据过来后,除整理数据保存到用户数据表外,在后期还需要把报文加工一下(要求报文内容与原接收报文一致,只是补加少量值),在发送到其它的系统。由于数据接收后已对数据加工到了用户表,已没有原报文内容(比如金额已累计),如从用户数据表中再取出数据整理加入发送出去,一是......
  • 在Python中抽象出具有相同接口的真实硬件和模拟设备
    我正在寻找一种更惯用或更简洁的OOP模式来实现与以下内容等效的功能。接口和实现fromabcimportABC,abstractmethodfromtypingimportoverrideclassDevice:"""Maininterfacethathideswhetherthedeviceisarealhardwaredeviceorasimulated......