15_abstract,static,final
一. abstract
1. 抽象类
- 被abstract修饰的类,称为抽象类
- 抽象类意为不够完整的类、不够具体的类
- 抽象类对象无法独立存在,即不能new对象,但可以声明引用
- 作用:
- 可被子类继承,提供共性属性和方法
- 可声明为引用、更自然的使用多态
- 经验:
- 抽象父类,可作为子类的组成部分,依附于子类对象存在
- 由父类共性+子类独有组成完整的子类对象
2. 抽象方法
- 被abstract修饰的方法,称为抽象方法
- 只有方法声明,没有方法实现({}的部分)
- 意为不完整的方法,必须包含在抽象类中
- 抽象类中不一定有抽象方法,但有抽象方法的类一定是抽象类
- 子类继承抽象类后,必须重写抽象类中所有的抽象方法,否则子类还是抽象类
二. static
概念:
- 静态(static)可以修饰属性和方法,无需创建对象,可直接通过类名访问
- 称为静态属性(类属性)、静态方法(类方法)
- 静态成员是全类所有对象共享的成员
- 在全类中只有一份,不因创建多个对象而产生多份
1. 静态属性
实例属性:是每个对象各自持有的独立空间(多份),对象单方面修改,不会影响其他对象
静态属性:是整个类共同持有的共享空间(一份),任何对象修改,都会影响其他对象
2. 静态方法
特点
- 静态方法允许直接访问静态成员
- 静态方法不能直接访问非静态成员
- 静态方法中不允许使用this或是super关键字
- 静态方法可以继承,不能重写,没有多态
3. 静态代码块
- 类加载时,触发静态代码块的执行(仅一次)
- 执行地位:静态属性初始化之后
- 作用:可为静态属性赋值,或必要的初始行为
类加载
- JVM首次使用某个类时,需通过CLASSPATH查找该类的,class文件
- 将.class文件中对类的描述信息加载到内存中,进行保存
- 如:包名、类名、父类、属性、方法、构造方法。。。
- 加载时机
- 创建对象
- 创建子类对象
- 访问静态属性
- 调用静态方法
- 主动加载:Class.forName(“全限定名”)
三. final
什么是最终?
- 最后的,不可更改的
final可修饰的内容
- 类(最终类)
- final修饰类:此类不能被继承
- String、Math、System均为final修饰的类,不能被继承
- 方法(最终方法)
- final修饰方法,此方法不能被重写
- 变量(最终变量)
- 1. 局部常量
- final修饰变量:此变量值不能被改变(常量),无初始值,只允许赋值一次
- 2. 实例常量
- 不再提供默认值,必须手动赋予初始值
- 赋值时机:显示初始化、构造方法
- 注意:如果在构造方法中为实例常量赋值,必须保证所有的构造方法都能对其正确赋值
- 3. 静态常量
- 不再提供默认值,必须手动赋予初始值
- 赋值时机:显示初始化,静态代码块
- 4. 对象常量
- final修饰基本类型:值不可变
- final修饰引用类型:地址不可变
- 1. 局部常量
15_abstract,static,final的更多相关文章
- Java 关键字static final使用总结
Static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,被static修饰的成员变量和成员方法独立于该类的任何对象.也就是说,它不依赖类特定的实例,被 ...
- 关于The serializable class XXX does not declare a static final serialVersionUID field of type long的警告
编写实体类并且继承序列化接口时候,实体类会有警告,要生成一个静态的serialVersionUID. 上网搜了一下资料,现通俗解释一下: 点击前2个选项,会生成: private static fin ...
- 为什么构造器不能是abstract, static, final, native or synchronized的?
Unlike methods, a constructor cannot be abstract, static, final, native or synchronized. 1. A const ...
- static、final、static final 用法
1.使用范围:类.方法.变量.2.区别和联系:2.1.static 含义:静态的,被 static 修饰的方法和属性只属于类不属于类的任何对象.2.2.static 用法:2.2.1.static 可 ...
- 为什么接口要规定成员变量必须是public static final的呢?(转)
在interface里面的变量默认都是public static final 的.所以可以直接省略修饰符: String param="ssm"://变量需要初始化 为什么接口要规 ...
- the serializable class XXX does not declare a static final seriaVersionUID...的问题
关于myeclips提示The serializable class XXX does not declare a static final serialVersionUID field of typ ...
- The serializable class does not declare a static final serialVersionUID field of type long
在编译以下Java程序时,出现The serializable class does not declare a static final serialVersionUID field of typ ...
- static int和static final int的区别
1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的区别是: 对于静态变量在内 ...
- [ReadingNotes] Search the links, static final in the java
[ReadingNotes] Search the links, static final in the java */--> pre { background-color: #2f4f4f;l ...
随机推荐
- S32K148-CAN收发
最近在搞一个转换板开发,大概意思把CAN信号转换成SPI信号,方案有两种:1)通过硬件电路直接把信号的bit位一位一位移给两个集成芯片:2)通过MCU接收CAN信号,再把信号变量转换成SPI信号发送给 ...
- Möbius 反演注记
目录 基本理论基础 数论函数 线性筛 Mobius 反演 Dirichlet 卷积 数论分块 / 整除分块 拆函数 时间复杂度分析 基本形式 GCD 形 万能 Prod 的莫比乌斯反演 正常例题 YY ...
- Pref 社论
目录 题面 题解 算法 1 算法 2 算法 3(标答) 代码 算法 1 20pts(by jijidawang) 40pts(by Rolling_Star) 算法 2 算法 3 题面 一个长度为 \ ...
- .NET性能优化-使用SourceGenerator-Logger记录日志
前言 在现在许许多多的应用系统中,日志非常关键,它即是排查问题的强力工具,也是程序员居家旅行工作甩锅必备良品. 在团队中编码中,我们都要求对于那些会变更数据的接口.调用第三方的接口记录请求和响应参数, ...
- Linux系列之比较命令
前言 Linux中有两个比较命令,它们分别是comm和diff,在比较文本文件的版本时通常很有用.本文介绍它们的区别和简单用法. comm命令 该命令对两个文本文件进行比较,并显示每个文件独有的行和它 ...
- 虚言妙诀终虚见,面试躬行是致知,Python技术面试策略与技巧实战记录
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_183 2021年,对于正在找工作的朋友来说,笼罩在新冠肺炎疫情之下,今年的就业季显得更加具有挑战性,更有意思的是,每当这个时候,各 ...
- ASP.NET Core 6框架揭秘实例演示[32]:错误页面的集中呈现方式
由于ASP.NET是一个同时处理多个请求的Web应用框架,所以在处理某个请求过程中出现异常并不会导致整个应用的中止.出于安全方面的考量,为了避免敏感信息外泄,客户端在默认情况下并不会得到详细的出错信息 ...
- ViewGroup事件分发源码分析
1.AndroidStudio源码调试方式 AndroidStudio默认是支持一部分源码调试的,但是build.gradle(app) 中的sdk版本要保持一致, 最好是编译版本.运行版本以及手机的 ...
- django路由匹配、反向解析、无名有名反向解析、路由分发、名称空间
目录 django请求生命周期流程图 1.Django请求的生命周期的含义 2.Django请求的生命周期图解及流程 3.Django的请求生命周期(分布解析) 路由层 1.路由匹配 2.path转换 ...
- SQL Server事务隔离级别
事务 定义 事务是作为单个逻辑工作单元执行的一系列操作. 一个逻辑工作单元必须有四个属性,称为原子性.一致性.隔离性和持久性 (ACID) 属性,只有这样才能成为一个事务. 一个事务可以包含多个操作. ...