java面向对象(八)
文章目录
- 一、abstract关键字的使用
- 1.概念
- 2. abstract修饰类:抽象类
- 3.abstract修饰方法,抽象方法
- 4.abstract使用上的注意点:
- 5.抽象类的匿名子类
- 二、计算一段代码执行所花费的时间
- 三、接口的使用
- 1.接口的使用
- 2.定义接口中的成员
- 3.代码demo
- 4.Java类可以实现多个接口 ---->弥补了Java单继承性的局限性
- 四、类的内部成员之五:内部类
- 1.概念
- 2.成员内部类
提示:以下是本篇文章正文内容,下面案例可供参考
一、abstract关键字的使用
1.概念
1.abstract :抽象的
2.abstract可以用来修饰的结构:类、方法
2. abstract修饰类:抽象类
此类不能实例化
抽象类中一定有构造器,便于子类实例化时调用(涉及:子类对象实例化的全过程)
开发中,都会提供抽象类的子类,让子类对象实例化,完成相关的操作
3.abstract修饰方法,抽象方法
抽象方法只有方法的声明,没有方法体
//不是抽象方法:public void eat(){}//抽象方法public abstract void eat();
包含抽象方法的类,一定是一个抽象类。反之,抽象类中可以没有抽象方法的。
若子类重写了父类中的所有的抽象方法后,此子类方可实例化。
若子类没有重写父类中的所有的抽象方法,则子类也是一个抽象类,需要使用abstract修饰
4.abstract使用上的注意点:
1.abstract不能用来修饰:属性、构造器等结构
2…abstract不能用来修饰私有方法、静态方法、final的方法、final的类
5.抽象类的匿名子类
eat()在Person类中是抽象方法,需在此重写
二、计算一段代码执行所花费的时间
public class TemplateTest{main(){SubTemplate t = new SubTemplate();t.spendTime();}
}abstract class Template{public void spendTime(){long start = System.currentTimeMillis();code(); //不确定的部分,易变的部分long end = System.currentTimeMillis();Sysout("花费的时间为:"+(end - start));}public abstract void code();
}class SubTemplate extends Template{public void node(){......}
}
三、接口的使用
1.接口的使用
1.接口使用interface来定义
2…Java中,接口和类是并列的两个结构
3.接口中不能定义构造器的!意味着接口不可以实例化
4.Java开发中,接口通过让类去实现(implements)的方式来使用。如果实现类覆盖了接口中的所有抽象方法,则此实现类就可以实例化,如果实现类没有覆盖接口中所有的抽象方法,则此实现类仍为一个抽象类
2.定义接口中的成员
1.JDK7及以前:只能定义全局常量和抽象方法
全局常量: public static final的.但是书写时,可以省略不写
抽象方法:public abstract的
2.JDK8:除了定义全局常量和抽象方法之外,还可以定义静态方法、默认方法(略)
3.代码demo
class Plane implements Flyable{public void fly(){sysout("通过引擎起飞");}public void stop(){sysout("停止飞");}
}
4.Java类可以实现多个接口 ---->弥补了Java单继承性的局限性
1.格式: class AA extends BB implements CC,DD,EE
2.接口与接口之间可以继承,而且可以多继承,接口的具体使用,体现多态性
四、类的内部成员之五:内部类
1.概念
1.Java中允许将一个类A声明在另一个类B中,则类A 就是内部类,类B就是外部类。
2.内部类的分类: 成员内部类(静态、非静态) vs 局部内部类(方法内、代码块内、构造器内)
2.成员内部类
一方面,作为外部类的成员。
调用外部类的结构
可以被static修饰
可以被4种不同的权限修饰
另一方面,作为一个类:
类内可以定义属性、方法、构造器等
可以被fina1修饰,表示此类不能被继承。言外之意,不使用fina1,就可以被继承
可以被abstract修饰
相关文章:
java面向对象(八)
文章目录 一、abstract关键字的使用1.概念2. abstract修饰类:抽象类3.abstract修饰方法,抽象方法4.abstract使用上的注意点:5.抽象类的匿名子类 二、计算一段代码执行所花费的时间三、接口的使用1.接口的使用2.定义接口中的成员3.代码demo4.Java类可以实…...
【proverif】proverif的下载安装和初使用
文章目录 一、proverif下载1. 下载proverif安装包2. 解压proverif安装包3. 点开其中的README,安装graphciz和gtk4. 查看安装是否成功5. 测试 一、proverif下载 1. 下载proverif安装包 官网:proverif 首先下载全过程无需开外网,而且安装包下…...
浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许
浙江大学《乡村振兴战略下传统村落文化旅游设计》许少辉八一著作——2023学生开学季辉少许...
Centos7.9 一键脚本部署 LibreNMS 网络监控系统
前言: LibreNMS 是个以 PHP/MySQL 为基底的自动探索网络监控系统 LibreNMS 官网 版本23.8.2-52-g7bbe0a2 - Thu Sep 14 2023 22:33:23 GMT0700数据库纲要2023_09_01_084057_application_new_defaults (259)Web 服务器nginx/1.20.1PHP8.1.23Python3.6.8DatabaseMa…...
【大数据之Kafka】十六、Kafka集成外部系统之集成Flume
Flume 是一个在大数据开发中非常常用的组件。可以用于 Kafka 的生产者,也可以用于 Kafka 的消费者。 Flume安装和部署:https://blog.csdn.net/qq_18625571/article/details/131678589?spm1001.2014.3001.5501 1 Flume生产者 (1)…...
java学习--day3 (运算符、if循环、switch-case结构)
文章目录 今天的内容1.运算符1.1关系运算符1.2逻辑运算符1.3逻辑运算符的短路原则 2.分支结构【重点】2.1if分支2.2if-else分支2.3if-else的嵌套写法2.4if-else if 分支结构2.5swicth-case结构 扩展知识点 1.八大基本数据类型整型: byte short int long浮点: float double字…...
ActiveMQ、RabbitMQ、RocketMQ、Kafka区别
一、消息中间件的使用场景 消息中间件的使用场景总结就是六个字:解耦、异步、削峰 1.解耦 如果我方系统A要与三方B系统进行数据对接,推送系统人员信息,通常我们会使用接口开发来进行。但是如果运维期间B系统进行了调整,或者推送…...
csp初赛总结 那些年编程走过的坑 初高中信竞常考语法算法点
😘个人主页:曲终酣兴晚的小书屋💖 😕作者介绍:一个莽莽撞撞的🐻 💖专栏介绍:日常生活&往事回忆 😶🌫️每日金句:祝大家心有山水不造作&…...
DollarTree(美元树)验厂需要注意哪些方面?
【DollarTree(美元树)验厂需要注意哪些方面?】 美元树(Dollar tree),是美国的一元店。每件商品都只卖一美元,吃的、用的和玩的应有尽有。美元树在美国共拥有4900家门店,其中一半的连…...
vector使用和模拟实现
💓博主个人主页:不是笨小孩👀 ⏩专栏分类:数据结构与算法👀 C👀 刷题专栏👀 C语言👀 🚚代码仓库:笨小孩的代码库👀 ⏩社区:不是笨小孩👀 🌹欢迎大…...
token登录的实现
token登录的实现 我这种token只是简单的实现token,就是后端利用UUID 生成简单随机码,利用随机码作为在Redis中的键,然后存储的用户信息作为值,在每次合理请求的时候对token的有效时间进行刷新(利用拦截器)&…...
GO语言从入门到实战-Go语言课程介绍
为什么选择 Go 语言来完成这么大一个项目呢?我们不妨回到 Go 语言的源头看一看。 Go 语言的初步设想始于 2007 年,当时 Go 语言的三位创始人是想通过开发一种新型的语言来解决 Google 在软件开发中面临的问题: 多核硬件架构;超大…...
七天学会C语言-第六天(指针)
1.指针变量与普通变量 指针变量与普通变量是C语言中的两种不同类型的变量,它们有一些重要的区别和联系。 普通变量是一种存储数据的容器,可以直接存储和访问数据的值。: int num 10; // 定义一个整数型普通变量num,赋值为10在例…...
2023年腾讯云轻量服务器测评:16核 32G 28M 配置CPU测试
腾讯云轻量应用服务器16核32G28M配置优惠价3468元15个月(支持免费续3个月/送同配置3个月),轻量应用服务器具有100%CPU性能,系统盘为380GB SSD盘,28M带宽下载速度3584KB/秒,月流量6000GB,折合每天…...
macos (M2芯片)搭建flutter环境
安装的版本3.13.4、电脑上没有安装过android studio、安装过brew 1.在终端运行sudo softwareupdate --install-rosetta --agree-to-license,下图展示安装成功的效果 2.下载以下安装包来获取最新的 stable Flutter SDK 3.解压,⚠️注意下载安装sdk的包名…...
Xilinx FPGA未使用管脚上下拉状态配置(ISE和Vivado环境)
文章目录 ISE开发环境Vivado开发环境方式1:XDC文件约束方式2:生成选项配置 ISE开发环境 ISE开发环境,可在如下Bit流文件生成选项中配置。 右键点击Generate Programming File,选择Process Properties, 在弹出的窗口选…...
数据结构---链表(java)
目录 1. 链表 2. 创建Node 3. 增加 4. 获取元素 5. 删除 6. 遍历链表 7. 查找元素是否存在 8. 链栈的实现 9. 链队的实现 1. 链表 数据存放在"Node"结点中 优点:不用考虑扩容和缩容的问题,实现了动态存储数据 缺点:没有…...
Qt --- Day02
实现效果: 点击登录,检验用户密码是否正确,正确则弹出消息框,点击ok转到另一个页面 不正确跳出错误消息框,默认选线为Cancel,点击Yes继续登录 点击Cancel跳出问题消息框,默认选项No,…...
Redis 集合(Set)快速指南 | Navicat
Redis 支持通过多种数据类型来存储项目集合。其中,包括列表、集合和哈希。上周的博文介绍了列表(List)数据类型并重点介绍了一些用于管理列表(List)的主要命令。在今天的文章中,我们将转向关注集合…...
【华为云云耀云服务器L实例评测】- 云原生实践,快捷部署人才招聘平台容器化技术方案!
🤵♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…...
【Java】泛型 之 什么是泛型
什么是泛型 泛型是一种“代码模板”,可以用一套代码套用各种类型。 在讲解什么是泛型之前,我们先观察Java标准库提供的ArrayList,它可以看作“可变长度”的数组,因为用起来比数组更方便。 实际上ArrayList内部就是一个Object[]…...
Python yaml 详解
文章目录 1 概述1.1 特点1.2 导入 2 对象2.1 字典2.2 数组2.3 复合结构 3 操作3.1 读取3.2 写入 1 概述 1.1 特点 yaml 文件是一种数据序列化语言,广泛用于配置文件、日志文件等特点: ① 大小写敏感。② 使用缩进表示层级关系。缩进时不允许使用 Tab 键…...
RabbitMQ消息可靠性(二)-- 消费者消息确认
一、消费者消息确认是什么? 在这种机制下,消费者在接收到消息后,需要向 RabbitMQ 发送确认信息,告知 RabbitMQ 已经接收到该消息,并已经处理完毕。如果 RabbitMQ 没有接收到确认信息,则会将该消息重新加入…...
【python第7课 实例,类】
文章目录 一、实例1.1实例的变量1.2实例方法1.3 构造方法1.4析构函数1.4预置实例属性: 二,类1.1类变量1.2类方法1.3静态方法1.4类属性的增删改查 一、实例 1.1实例的变量 使用示例 class dog:def __init__(self,k,c,a):self.kinds kself.color csel…...
RocketMQ源码解析(上)
一、ACL权限控制 应用场景: RocketMQ提供了针对队列、用户等不同维度的非常全面的权限管理机制。通常来说,RocketMQ作为一个内部服务,是不需要进行权限控制的,但是,如果要通过RocketMQ进行跨部门甚至跨公司的合作&…...
Webpack打包CSS文件,解决You may need an appropriate loader to handle this file type报错
在项目文件夹下创建webpack.config.js文件,该文件就是Webpack的配置文件 注意:该文件中遵循Node.js的代码格式规范 ,需要对导出配置文件中的内容 Webpack在默认情况下只能打包js文件,如果我们希望他能够打包其他类型的文件&#…...
轮换对称性
二重积分 普通对称性–D关于 y x yx yx对称: ∬ D f ( x , y ) d σ { 2 ∬ D 1 f ( x , y ) d σ f ( x , y ) f ( y , x ) 0 f ( x , y ) − f ( y , x ) \iint_{D}f(x,y)d\sigma\begin{cases} 2\iint_{D_1}f(x,y)d\sigma\ \ \ \ \ \ f(x,y)f(y,x) \\ 0 \ \…...
【MySQL基础】--- 约束
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【MySQL学习专栏】🎈 本专栏旨在分享学习MySQL的一点学习心得,欢迎大家在评论区讨论💌 目录 一、什么…...
ROS2 的行为树 — 第 1 部分:解锁高级机器人决策和控制
一、说明 在复杂而迷人的机器人世界中,行为树(BT)已成为决策过程中不可或缺的一部分。它们提供了一种结构化、模块化和高效的方法来对机器人的行为进行编程。BT起源于视频游戏行业,用于控制非玩家角色,他们在机器人领域…...
kafka事务的详解
一 kafka事务的机制 1.1 kafka的事务机制 通过事务机制,KAFKA 可以实现对多个 topic 的多个 partition 的原子性的写入,即处于同一个事务内的所有消息,不管最终需要落地到哪个 topic 的哪个 partition, 最终结果都是要么全部写成功…...
随州网络推广/独立站seo搜索优化
今天,开学了!寒假后,学生们又回到校园开始新学期的学习。(资料图片)本报讯(记者 陈玉珍)在度过一个愉快短暂的寒假后,学生们又回到校园开始新学期的学习,今日,泉州市各中小学开学并正式上课。开学的第一天&…...
免费建立英文网站/网站seo优化方案项目策划书
0x1 问题 今天不讲量化,来聊聊其他的 铁废柴一年到头也想不明白,那些几万人用的程序,几百万人关注的自媒体账号 到底是怎么做出来的啊 为什么我发一百个视频才赚100块钱 我要怎么才可以过上小康生活? 0x2 答案 矩阵ÿ…...
海口中小企业网站制作/公司网站如何建设
数据去重复,一直都是表亲们痛点、难点,甚至是痛不欲生。在以前的教程中,小编讲过用数据透视表、函数、sql、、pq、技巧法。传统的函数解决办法是:indexsmallrow,简称裹脚布函数,很多表亲都望而生畏。今天小…...
北京手机网站开发价格/中国十大软件外包公司
前言我们很多小伙伴平时都是做JAVA开发的,那么作为一名合格的工程师,你是否有仔细的思考过JVM的运行原理呢。如果懂得了JVM的运行原理和内存模型,像是一些JVM调优、垃圾回收机制等等的问题我们才能有一个更清晰的概念。为了走进JVM࿰…...
盐城大丰建设局网站/郑州网站建设
前言:反射库(reflection library)是Java组件的体系结构,提供了一个精心设计的丰富的工具集,以便能够编写动态操纵Java代码的程序。反射被大量应用于JavaBeans中,使Java可以支持Visual Basic用户习惯使用的工…...
铜煤建设网站/seo优化排名易下拉软件
虽然,SQL Server中的DTS也能将数据倒入Excel,但不如使用程序灵活, 本程序主要代码在按钮函数内。可适应于报表开发的读取数据部分:) 我删除了原程序的很多垃圾代码,只留主要起作用的代码 //加入名称空间 using System.Data; using System.Data.SqlClie…...