javaSE系列之抽象类与接口
创始人
2025-05-29 14:19:15

在这里插入图片描述

💗 💗 博客:小怡同学
💗 💗 个人简介:编程小萌新
💗 💗 如果博客对大家有用的话,请点赞关注再收藏 🌞

javaSE系列之抽象类与接口

  • 抽象类
    • 抽象类的概念
    • 抽象类的语法
    • 抽象类的作用
  • 接口
    • 接口的概念
    • 语法规则
    • 接口间的继承
    • 抽象类与接口的区别

抽象类

抽象类

抽象类的概念

1.一个类中没有包含足够的信息来描述一个具体对象,这样的类就是抽象类。(对象都是通过类来描述的,但不是所有的类都可以描述对象)

抽象类的语法

//一个类如果被 abstract 修饰称为抽象类,抽象类中被 abstract 修饰的方法称为抽象方法,抽象方法不用给出具体的实现体.
在这里插入图片描述
在这里插入图片描述

1…使用abstract修饰的类叫做抽象类,使用abstract修饰的方法叫做抽象方法
2.抽象类中可以包含普通类所能包含的成员
3.抽象类与普通类不同,抽象类当中可以包含抽象方法。
4.抽象类不能具体的实例化(new 类( ))。但是有构造方法 通过子类构造

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.抽象类存在的最大意义就是被继承//这里继承但不需要方法都重写,这里主要重写抽象方法。
6.普通类继承抽象类,必须重写抽象方法
7.抽象类继承抽象类,不要需要重写
8.静态方法,被private修饰的方法,构造方法,被final修饰的方法都不能被重写,所以不能成为抽象方法(因为抽象方法必须被重写)

抽象类的作用

1.抽象类本身不能被实例化, 要想使用, 只能创建该抽象类的子类. 然后让子类重写抽象类中的抽象方法。
2.那为什么不直接写普通方法的子类重写呀?
在大多数工作不能该由父类完成,而只用子类完成,如果此时不小心使用父类完成,编译器也不会报错,而抽象类的父类不能被实例化,所以能提早发现错误。

接口

接口的概念

接口可以看成是:多个类的公共规范,是一种引用数据类型。

语法规则

//书写小提示:接口命名一般以大写I开头,接口命名“用形容词性”的单词 //接口与抽象方法有许多类似
1.接口不能实列化(new ? ()),而且不能使用子类帮助构造父类,所以接口没有构造方法(我的理解是 在抽象类中抽象方法才被重写,所以子类可以帮助构造其他成员变量,但是接口中的成员变量都是 public static final 无法赋值
所以无法使用构造方法)
2.接口不能在接口中实现,只能被重写
3.在子类重写接口方法时,不能使用default来访问权限修饰,接口默认访问权限为public 因为子类的访问权限只能大于等于父类
4.接口中可以有成员变量但是会被默认为public static final类型
5.如果不想重写接口中的方法,则需把类设置为抽象类(抽象方法也是) 6jdk8中.接口还可以包含default可以重写也可以不重写,也包含静态方法,不能重写
7.一个类可以继承多个接口

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//不要因为即继承接口又继承父类就乱了思路,可以把他们分开想象,
//(个人理解)主要实现子类方法,父类可以不用接接口

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

接口间的继承

类是单继承的,一个类实现多个接口,接口之间可以实现多继承

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

抽象类与接口的区别

抽象类可以包括普通方法和普通字段,可以不被重写,而接口中的方法必须重写

//抽象类的存在是为了更好运用子类,因为不小心实例化了父类,编译器会提醒
在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

【uniapp tabs标签组... 前言 这个tabs功能是很多移动端项目都要用的 最近我刚好遇到了这个功能 因为我们项目不让用uvie...
电子采购管理软件开发功能有哪些... 电子采购系统是将供应商、招标机构、评标专家、政府监督机构等连接起来,企业、机关和个人在...
K8S集群1.24使用dock... 文章目录1. 环境介绍2. 异常信息3. 分析问题3.1 kubernetes 健康检查3.1.1 ...
TS接口类型 40. TS接口 1. 定义 TypeScript 中的接口是一种抽象结构,用于定义对...
Time out. EFI N... 背景:最近使用了虚拟机,正准备安装个Windows10的操作系统...
数字电路2. OC门、OD门、... 数字电路2. OC门、OD门、三态门一、OC门——集电集开路门1. 基本概念2. 作用3. 使用要点...
操作系统性能优化实践 感谢内容提供者:四川省奇呱科技有限公司 文章目录一、常见性能指标及USE法分类1.C...
展现AI与自动化测试技术之间的... 目录:导读 前言 一、介绍 1、什么是自动化测试技术 2、痛点 3、几款优秀的自动化测...
第一周web 目录 [NISACTF 2022]popchains  [NSSCTF 2022 Spring Re...
百元降噪耳机推荐,适合学生党入... ​降噪蓝牙耳机怎么选?有哪些适合学生党使用的百元降噪蓝牙耳机?很多人在面...
C# winform坐标系类型... C# winform坐标系类型详解 GDI+ 使用三个坐标空间:世界、页面和设...
Windows平台安装MacO... 写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自...
Windos远程连接Linux... ssh安装 使用root用户登录 su root 更换apt 下载源为清华源,先备...
近期媒体邀约活动总结,注意事项 传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 随...
每日一博 - Java 异步编... 文章目录概述概述Executor与线程池Java 中的线程池使用线程池的注意事项强烈建议使用有界队列...
thinkphp基础学习 Composer安装thinkphp6,输入命令,其中tp为项目目录名可...
10从零开始学Java之开发J... 作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦CSD...
项目团队任务分配的5大注意事项         想要把工作合理分配给下属,在进行项目团队任务分配时,需要...
scratch猜数字游戏 电子... 目录 scratch猜数字游戏 一、题目要求 1、准备工作 2、功能实现 二、案例分析 <
Windows逆向安全(一)之... C语言内联汇编和调用协定 前面我们通过分析反汇编分析了C语言,现在我们来探究如何在C语...
「操作系统」什么是用户态和内核... 「操作系统」什么是用户态和内核态?为什么要区分 参考&鸣谢 从根上理解用户态与内核态...
vue项目局域网前后端接口对接... 场景: 项目开发中,当前没有服务器,或感觉每次部署包麻烦的...
选择器(设置样式的元素) 系列文章目录 前端系列文章——传送门 CSS系列文章——传送门 文章目录系列文章目录1.基本选择器...
【IoT】嵌入式Linux开发... 目录 LCD类型 分辨率 色深(色位) 尺寸 PPI(pixels per inch) LCD连接...
MySQL事务处理 Java知识点总结:想看的可以从这里进入 目录4、MySQL事务处理4.1、 简介4...
MyBatis级联一对一与一对... 级联 MyBatis 的级联分为3 种: 鉴别器(discriminator):它是一...
栈和队列(stack和queu... 目录一、栈1.1 什么是栈?1.2 栈的相关操作1.2.1 结构体变量的声明1.2.2...
Hive 文章目录1️⃣、Hive入门1.1、什么是Hive1.2、Hive架构2️⃣、Hive安装及使用2....
纠错码中的汉明码,NAND F...      纠错码是一种用在不可靠的或者噪音比较大的通信信道中用来控制数据传输错误的技术。这种技术的核...
CMIP6:WRF模式动力降尺...  气候变化关系到农业、生态系统、社会经济和人类生存与发展,是当今世界关注的重点问题之一...