首页 > 其他分享 >关于接口和抽象类

关于接口和抽象类

时间:2023-07-07 22:44:47浏览次数:39  
标签:构造方法 实现 子类 接口 关于 抽象类 方法

接口(Interface)和抽象类(Abstract Class)用于实现代码的抽象和封装。

  1. 定义方式:接口是一种纯粹的抽象概念,只定义了方法的签名,没有实现;抽象类是一个可以包含抽象方法和具体方法的类。

  2. 实现方式:一个类可以实现多个接口;一个类只能继承一个抽象类。

  3. 方法:接口中的方法默认是公共的抽象方法(public abstract),不包含方法体;抽象类中可以包含抽象方法和具体方法,具体方法可以有方法体。

  4. 实例化:接口不能被实例化,只能被实现;抽象类不能被实例化,只能被继承。

  5. 多继承:接口可以实现多个,实现类可以同时实现多个接口;抽象类只能被单继承。

  6. 灵活性:接口更加灵活,一个类可以通过实现多个接口来达到代码复用和灵活性;抽象类更加具体,可以提供一些通用的方法和属性,减少重复代码

  7. 构造器: 接口没有构造方法;抽象类有构造方法。

总的来说,接口用于定义一组方法的规范,实现类需要实现这些方法;抽象类用于提供一些通用的方法和属性,子类需要继承并实现抽象类中的抽象方法。在设计上,接口更加灵活,适用于定义多个类的行为规范;抽象类更加具体,适用于定义一组相关类的通用行为。

抽象类构造方法的作用:

抽象类的构造方法主要用于初始化抽象类的成员变量和执行一些必要的操作。虽然抽象类不能直接实例化对象,但是它可以被子类继承,并且子类的构造方法可以调用抽象类的构造方法来完成初始化。

抽象类的构造方法有以下几个作用:

  1. 初始化成员变量:抽象类可以定义成员变量,构造方法可以用来初始化这些成员变量,确保在子类实例化时,这些成员变量具有合适的初始值。

接口也可以定义成员变量(修饰符隐藏为public final static 并且这是强制性的)

  1. 强制子类实现特定的构造方法:抽象类可以定义抽象方法,子类必须实现这些抽象方法。如果抽象类的构造方法需要某些参数,那么子类的构造方法也必须传递相应的参数,并调用父类的构造方法来完成初始化。

  2. 执行其他必要的操作:构造方法可以执行一些必要的操作,例如打开文件、建立数据库连接等。这样可以确保在子类实例化时,这些操作能够被正确执行。

需要注意的是,抽象类的构造方法不能被直接调用,只能通过子类的构造方法来间接调用。而且,子类的构造方法必须在第一行调用父类的构造方法,以确保抽象类的成员变量和其他操作能够正确地初始化。

标签:构造方法,实现,子类,接口,关于,抽象类,方法
From: https://www.cnblogs.com/ccljj/p/17536040.html

相关文章

  • 关于手打栈(Stack)的最基本用法
    写在前面这是本蒟蒻的第一篇博客。毕竟不是题解,也没有冠以题解的名号。作者就是个时常不带脑子的傻瓜,因此定有错误、不足之处,还请多多包涵,并欢迎批评指正!栈栈(stack)是一种数据结构,在STL标准库中可以直接使用。具体地说,栈就是一种只允许在一端进行插入或删除操作的线性表。与队列......
  • 在 Spring Boot 中使用 Dataway 配置数据查询接口
     Dataway介绍Dataway是基于DataQL服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过Dataway提供的UI界面完成。UI会以Jar包方式提供并集成到应用中并和应用共享同......
  • Java 抽象类的定义与使用
    抽象类抽象类举例: abstractPeople{publicabstractvoideat();publicabstractvoidsleep();}   抽象类的几个特点1.抽象类被修饰符abstract修饰 abstract类名{类体} 2.抽象类内可以存在抽象方法与非抽象方......
  • 通过在本地项目中添加服务引用访问外部WebService项目接口
    访问外部WebService项目接口的第二种方式就是通过在本地项目中添加服务引用。以下学习验证过程,通过在本地建立一个winfrom项目,通过按钮点击,触发调用接口,执行代码处理逻辑,并在文本显示区域显示最终拿回的数据。(1)在Visualstudio新建一个winfrom项目: (2)右键项目,添加服务应用,填......
  • 关于通过bat脚本-自动使用mstsc-远程桌面命令登录到远程windows主机的方法
    在Windows系统中,我们可以通过系统自带的mstsc远程桌面工具,登录到远端的windows服务器主机但是需要输入用户名和密码,回车、于是笔者想了一下,能不能创建一个bat文件,双击后,就会自动的传入用户名和密码进行登录经过查询和实验、还真有这样的办法(当然在正式的环境,不建议这样操作,因为......
  • luffy 查询所有课程接口、课程详情接口、课程详情后台之所有章节接口
    目录1查询所有课程接口1.1视图类1.2序列化类1.3表模型2课程详情接口3课程详情后台之所有章节接口3.1视图类3.2序列化类4所有课程前台,课程详情前台4.1课程列表页4.2课程详情页面5视频托管1查询所有课程接口#查询所有课程接口 -带过滤:按分类过滤-带排序:价格,......
  • 提升开发效率,轻松管理接口就用 Apipost
    API管理的难点在哪?相信无论是前端,还是后端的测试和开发人员,都遇到过这样的困难。不同工具之间数据一致性非常困难、低效。多个系统之间数据不一致,导致协作低效、频繁出问题,开发测试人员痛苦不堪。开发人员在Swagger定义好文档后,接口调试的时候还需要去Postman再定义一遍。......
  • 通过前端Ajax访问WebService形式的接口
    WebService是早期提供Web服务的一种形式(现在最新的方式是WebApi),其无关于编程语言,有java形式的WebService,也有C#形式的WebService。我们在项目中,需要和其他外部系统进行接口对接时,常使用WebService或WebApi,这取决于对方提供服务接口的使用的是那种技术。我们可以在本地模拟访问......
  • java 关于数据库外键
    查询性能:当查询涉及到外键关系时,数据库需要进行额外的操作来验证关联关系的完整性,这可能会导致查询速度变慢。特别是在大型数据库系统中,外键的验证操作可能会消耗较多的计算资源和时间。更新性能:当更新外键相关的数据时,数据库需要确保更新操作不会破坏关联关系的完整性。这可......
  • 关于JS定时器的整理
    在JS中定时器有非常大的作用,例如:执行延迟操作:使用setTimeout可以在一定的延迟后执行特定的代码。这对于需要在一定时间后执行某些操作的情况非常有用,例如延迟显示提示信息、执行动画效果等。定期刷新数据:使用setInterval可以定期执行某段代码,例如定时从服务器获取最新数据并......