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

接口和抽象类

时间:2023-10-12 14:24:23浏览次数:27  
标签:实现 子类 接口 抽象 抽象类 方法

抽象类和接口都是Java中用于实现多态的机制,它们的相同点和不同点如下:

相同点:

  1. 都不能被实例化,只能被继承或者实现。
  2. 都可以包含抽象方法,子类或者实现类必须实现这些抽象方法。
  3. 都可以被用于实现多态。

不同点:

  1. 抽象类可以包含非抽象方法,而接口只能包含抽象方法。
  2. 子类只能继承一个抽象类,但是可以实现多个接口。
  3. 抽象类的方法可以有访问修饰符,而接口的方法默认为public。
  4. 接口可以包含常量,而抽象类不能。
  5. 接口可以被用于定义类型,而抽象类不能。
  6. 接口的成员变量默认为public static final,而抽象类的成员变量可以有不同的访问修饰符。

 

在 Java 中,一个抽象类实现一个接口时,可以选择只实现接口中的一部分方法。但是,如果这个抽象类不是抽象的,那么它必须实现接口中的所有方法。

如果一个抽象类只实现了接口中的一部分方法,那么它必须声明为抽象类。这是因为如果一个类没有实现接口中的所有方法,那么它就不能被实例化,因为无法保证它的所有方法都得到了实现。

需要注意的是,实现接口的抽象类中的未实现方法可以在子类中实现。这意味着如果一个抽象类只实现了接口中的一部分方法,那么它的子类必须实现未实现的方法,否则它也必须被声明为抽象类。

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

相关文章

  • Go接口 - 构建可扩展Go应用
    本文深入探讨了Go语言中接口的概念和实际应用场景。从基础知识如接口的定义和实现,到更复杂的实战应用如解耦与抽象、多态、错误处理、插件架构以及资源管理,文章通过丰富的代码示例和详细的解释,展示了Go接口在软件开发中的强大功能和灵活性。关注【TechLeadCloud】,分享互联网架......
  • 使用httpclient实现后台通过接口上传文件
    请求端:varupurl=Config.GetValue("fileupUrl");HttpPostedFilefile=files[0];MemoryStreammemoryStream=newMemoryStream();file.InputStream.CopyTo(memoryStream);byte[]fileBytes=memoryStream.ToArray();objectsendScObj......
  • 调用微信接口返回openid
    privateStringgetOpenId(Stringcode){Stringurl="https://api.weixin.qq.com/sns/jscode2session";HashMapmap=newHashMap();map.put("appid",appId);map.put("secret",appSecret);m......
  • 标记接口
    在Java中,定义一个空接口作为父类是有意义的,因为它可以作为一个标记接口(MarkerInterface)。标记接口是指没有任何方法的接口,它仅仅是用来标记一个类是否具有某种特定的能力或属性。例如,Java中的Serializable接口就是一个标记接口,它用来标记一个类是否可以被序列化。如果一个类实现......
  • 接口2.0
    packagecom_black.jiekou.Demo01;publicinterfaceEnglish{publicabstractvoidspeak();}packagecom_black.jiekou.Demo01;publicabstractclassPerson{privateStringname;privateintage;publicPerson(){}publicPerson(Stringname,......
  • pytest接口测试中使用 base-url进行环境切换
    pytest-base-url是pytest的第三方插件,主要用来帮助我们进行切换测试环境地址,其中配置方法存在两种,一种直接在命令行中进行添加url参数  命令行参数传入 命令行参数传入,这里需要在我们需要传入的测试用例中,提前加入base-url的参数名称,方便后续命令行时好直接传入参数,也就......
  • 接口测试报500错误
    接口测试的时候报500错误 原因①:在表设计的时候,设置了这个数据不能重复,即表中已经存在了“就业部”这个消息了,所以报错。控制台报错信息:java.sql.SQLIntegrityConstraintViolationException:Duplicateentry'就业部'forkey'dept.name';Duplicateentry'就业部'fork......
  • interface 接口相关【GO 基础】
    〇、接口简介接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。也就是说,接口可以将一种或多种特征归纳到一起,其他不同的对象通过实现此接口,来表示可以具有此类特征,使得不同的类或模块之间进行通信和交互,而不需要了解彼此的具体实现细节,从而......
  • Python搭建数据查询接口服务
    启动一个服务,使用FastAPI框架,增加跨域允许1#-*-coding:UTF-8-*-2"""3@author:cc4@file:service.py5@time:2021/05/246"""78importsqlite39fromfastapiimportFastAPI10importuvicorn11importos12fromfastapi.......
  • 又一个难题:Java 序列化和反序列化为什么要实现 Serializable 接口?
    作者:椰子Tyshawn来源:https://blog.csdn.net/litianxiang_kaola最近公司的在做服务化,需要把所有model包里的类都实现Serializable接口,同时还要显示指定serialVersionUID的值.听到这个需求,我脑海里就突然出现了好几个问题,比如说:序列化和反序列化是什么?实现序列化和......