首页/新闻资讯/正文详情

Java核心概念:抽象类、接口、Object类深度剖析

发布时间:2026/9/27 8:38:56 来源:云帆数科 栏目:资讯中心
Java核心概念:抽象类、接口、Object类深度剖析
Java核心概念抽象类、接口、Object类深度剖析1.抽象类1.1啥是抽象类1.2抽象类的特性1.3如何使用抽象类呢1.4抽象类的作用2.接口2.1接口的声明2.2接口的使用2.3接口的特性2.4实现多个接口2.5接口间的继承3.Object类3.1初步了解Object类3.2获取对象信息1.抽象类1.1啥是抽象类在面向对象的概念中所有的对象都是通过类来描绘的但是反过来并不是所有的类都是用来描绘对象的如果一个类中没有足够的信息来描绘一个具体的对象这样的类就是抽象类。像这样的Animal类一般只为服务创建Dog类和Cat类的我们就可以直接定义为抽象类abstract class以及animal类的bark()方法我们通常不调用所以我们同样可以写为抽象方法abstract function。像这样子的抽象类和抽象方法就是为了让子类去重写再描述具体对象而产生的。并且我们同样合理的利用编译器的语法规则去校验我们的代码以防错误的创建和访问。1.2抽象类的特性注意1.抽象类不能直接实例化对象但其他功能和普通类仍然一样2.抽象类必须被继承3.抽象方法不能是private的4.抽象方法不能被final和static修饰因为抽象方法要被子类重写5.抽象类必须被继承并且继承后子类要重写父类中的抽象方法否则子类也是抽象类必须使用abstract修饰6.抽象类中不一定包含抽象方法但是有抽象方法的类一定是抽象类7.抽象类中可以有构造方法供子类创建对象时初始化父类的成员变量1.3如何使用抽象类呢我们依旧拿Animal举例哈问就是想象力匮乏…publicabstractclassAnimal{publicabstractvoidbark();}//是在不同文件哈publicclassDogextendsAnimal//记得要重写抽象方法哈publicvoidbark(){System.out.println(在汪汪汪);}}1.4抽象类的作用经过上面的学习我们可以知道抽象类就是为了给定子类一个大的框架保证后面的子类根据抽象类做更多定义。记住哈抽象类本身不能被实例化要想使用只能创建该抽象类的子类然后让子类重写抽象类中的抽象方法。另外呢我想说我们使用抽象类的意义就是为了多一重编译器的校验尽管普通类就足够但既然有这样的语法我们就应该按照规范去完成啦2.接口2.1接口的声明publicinterface[接口名称]{publicvoidmethod();}注意:1.创建接口时接口的命名一般以大写字母I开头2.接口的命名一般使用“形容词”词性的单词3.接口是隐式抽象的当声明一个接口的时候不必使用abstract关键字4.接口中的方法都是共有的2.2接口的使用接口必须要通过一个“实现类”来实现该接口并且要实现接口中的所有方法否则类必须声明为抽象的类。eg:(这是两个文件publicinterfaceIaction{voideat();voidwalk();voidsleep();...}publicclassDogimplementsIaction{Overridepublicvoideat(){}Overridepublicvoidwalk(){}Overridepublicvoidsleep(){}}1.子类与父类之间是extends继承关系类与接口之间是implements实现关系2.这两种关系可以同时作用3.继承不能多继承但一个类可以同时实现多个接口2.3接口的特性1.接口当中的成员变量默认是public static final修饰的只能是public用private会编译报错2.接口当中的抽象方法默认都是public abstract修饰的只能是噢、public abstract其他修饰符都会报错3.如果接口当中的方法被default修饰那么可以有具体的实现defaultvoidtest(){System.out.println(default method);4.如果接口当中的方法被static修饰那么可以有具体的实现staticvoidtest(){System.out.println(static method);5.接口是不可以进行实例化的6.类和接口之间可以使用关键字implements来实现接口7.一个接口对应一个字节码文件8.接口中不能有静态代码块和构造方法9.如果类中没有实现接口中的所有方法则类必须设置为抽象类2.4实现多个接口实现接口不像继承类一样它可以多个实现比如下面publicclassAnimalimplementsIwalk,Iswim,Ieat{}注意通常我们用抽象类或父类实现接口的时候所实现的接口一定要有共性如walkeat一些动物都会的…另外一个类实现多个接口时每个接口中的抽象方法都要实现否则类必须设置为抽象类。提示IDEA中使用 ctrl i 可以快速实现接口因此我们可以这样去理解继承表达的含义是is-a语义而接口表达的含义是具有xxx特性猫是一种动物具有会跑的特性青蛙也是一种动物既能跑也能游泳这样的话我们可以不用父类实现所有接口只需要每一个动物类去单独实现该有的特性然后在运行类这样写再在main方法中像这样去调用即可publicclassTest{publicstaticvoidwalk(IWalkiwalk){iwalk.walk();}publicstaticvoidmain(String[]args){DogdognewDog(PaPy Dog,3);Test.walk(dog);Test.walk(newDog(dog,2));//匿名对象同样也行}}但是如果该具体动物类没有实现对应接口那么就会报错2.5接口间的继承interfaceIA{publicvoidia();}interfaceIB{publicvoidib();}interfaceICextendsIA,IB{publicvoidic();}但我们去实现接口IC的时候要重写IC所继承的所有方法以及它本身的方法。即 要重写iaibic三个方法接口间的继承相当于把多个接口合并在一起3.Object类3.1初步了解Object类首先我们要知道Object类是Java默认提供的一个类Java里除了Object类所有的类都是存在继承关系的。默认继承Object父类。即所有类的对象都可以使用Object的引用进攻接收。eg:我们用Object接受所有类的对象classDog{}classCat{}publicclassTest{publicstaticvoidmain(String[]args){Objectobj1newDog(dog,2);Objectobj2newCat(cat,2);}}也就是说都可以向上转型所以在开发中Object类是参数的最高统一类型。但Object类也有定义好的一些方法。我们主要关注hashCode(),equal(),toString()这几个方法即可3.2获取对象信息打印对象信息我们可以直接重写或直接调用Object类的toString方法// Object类中的toString()方法实现publicStringtoString(){returngetClass().getName()Integer.toHexString(hashCode());}//重写的toStringOverridepublicStringtoString(){returnDog{namename\, ageage};}ObjectobjnewDog(dog,2);System.out.println(obj.toString());//这样调用即可以上是我关于Java的笔记分享感谢你读到这里这也是我学习路上的一个小小记录。希望以后回头看时能看到自己的成长~

相关推荐

直播网站建设目的与哪家好:3步避开安全雷区
直播网站建设目的与哪家好:3步避开安全雷区

直播网站建设目的与哪家好:3步避开安全雷区 网站做好了没人访问,这往往不是SEO没做好,而是你的直播后台因为一次简单的SQL注入或者未加密的API接口,直接挂了,或者被搜索引擎判定为“不安全”而降权。很多项目经理在选建站公司时,只盯着页面好… · 2026/9/27 8:38:56

Java对象比较与克隆:Comparable、Comparator接口与深拷贝实现
Java对象比较与克隆:Comparable、Comparator接口与深拷贝实现

接口使用实例以及Object类中的equals,hashcode方法1.Comparable 接口实现2.Comparator 接口实现3.Clonable 接口和深拷贝4.对象比较equals方法5.hashcode方法1.Comparable 接口实现 实现该接口时需要加上一个泛型(类比 C的模板) Class Student impleme… · 2026/9/27 8:38:56

抖音批量下载器怎么用:Cookie、去重与直播存档一次讲清
抖音批量下载器怎么用:Cookie、去重与直播存档一次讲清

抖音批量下载器怎么用:Cookie、去重与直播存档一次讲清 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback supp… · 2026/9/27 8:38:50

AI 写的代码已经占了一多半,但把它当回事的程序员反而更值钱了
AI 写的代码已经占了一多半,但把它当回事的程序员反而更值钱了

今天上午我刷到一个数字,愣了好一会儿——硅谷那家做 AI 编程智能体 Devin 的公司 Cognition,按这个月的业务表现推算,年化营收要冲到 10 亿美元了。四个月前这个数还只有 9 亿的一半左右,等于翻了一倍。要知道 Devin 这东西刚出来… · 2026/9/27 9:15:26

Lightning CSS Bundling 实战指南:@import 打包、条件导入与自定义解析器
Lightning CSS Bundling 实战指南:@import 打包、条件导入与自定义解析器

前端开发工具 【免费下载链接】lightningcss An extremely fast CSS parser, transformer, bundler, and minifier written in Rust. 项目地址: https://gitcode.com/gh_mirrors/li/lightningcss 点击查看 免费下载 Lightning CSS 是使用 Rust 编写的高性能 CSS 解… · 2026/9/27 9:15:19

youhostingwordpress建站避坑指南:老板必看的7大安全死穴
youhostingwordpress建站避坑指南:老板必看的7大安全死穴

youhostingwordpress建站避坑指南:老板必看的7大安全死穴 很多老板想给公司做个官网,但自己不会写代码,也没请得起全职开发。这时候,找一家像 YouHosting 这样提供 WordPress… · 2026/9/27 9:15:13

在 Puma 集群模式下使用 gRPC:生命周期钩子完整实战指南
在 Puma 集群模式下使用 gRPC:生命周期钩子完整实战指南

后端网络 【免费下载链接】puma A Ruby/Rack web server built for parallelism 项目地址: https://gitcode.com/gh_mirrors/pu/puma 点击查看 免费下载 导读 本指南围绕 Puma(Ruby/Rack 并行 Web 服务器)的集群模式(Clustered … · 2026/9/27 9:14:55

hunterplayer开发笔记
hunterplayer开发笔记

开发了一款猎头和HR的搜索人才工具。通过网盘分享的文件:hunterplayer.zip 链接: https://pan.baidu.com/s/1_-xLY3-JCcceDccYMPbo8A?pwdsgaf 提取码: sgaf 在conda prompt中使用conda activate image ,image使用python 3.13.12。直接在vs中activate不… · 2026/9/27 9:14:55

网站建设实践报告绪论图解步骤拆解与选型避坑
网站建设实践报告绪论图解步骤拆解与选型避坑

网站建设实践报告绪论图解步骤拆解与选型避坑 网站做好了没人访问,这比做不出网站更让人崩溃。我见过太多独立站长,前端代码写得行云流水,服务器配置得滴水不漏,结果上线三个月,后台数据除了蜘蛛爬虫就是… · 2026/9/27 9:14:55

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码