当前位置: 首页 > news >正文

韩顺平0基础学java——第19天

p396-406

final关键字

1.final修饰的为“常量”,需要给初始值。1可以直接定义时赋值,2在构造器中,3在代码块中。

注意静态代码块只能访问静态变量。

2.如果final修饰的关键字是静态的,那就不能在构造器中赋值,只能1定义时,2.在静态代码块中。

        因为构造器不能static,但是静态的在类加载的时候就要生成了,而构造器是在创建对象的时候才调用!

3.final类不能继承,但是可以实例化对象~

4.如果类不是final类,但是含有final方法,则该方法不能重写,但是可以继承。即仍然遵守继承机制。

5.一般来说,如果已经是一个final类了(不能被继承了),里面的方法就不用final了

6.final不能修饰构造器

7.final往往和static搭配,效率更高:不会导致类的加载,底层编译器做了优化 

8.包装类都是final的,不能被继承(如String,Integer,Double)

9.传入参数也可以用final修饰

抽象类

父类的一些方法声明了,但是没有实现,即没有方法体,这个方法就是抽象方法。

当一个类中存在抽象方法时,需要将该类声明为抽象类

设计模式用的比较多

抽象类细节

1.抽象类不能被实例化

2.抽象类不一定要包含abstract方法

3.一旦包含了abstract方法,则必须把类声明为abstract类

4.abstract只能修饰类和方法,不能修饰别的

5.抽象类可以有任意成员(抽象类还是个类)

6.抽象方法不能有方法体

7.如果一个类继承了抽象类,则它必须实现抽象类的所有方法,除非它自己也声明为abstract类

8抽象方法不能使用private、final、和static来修饰,因为这些关键字都是和重写违背的

抽象类最佳实践:模板设计模式

程序执行期间会动态绑定!根据运行类型来找方法。

接口

接口就是给出一些没有实现的方法,封装到一起,到某个类型要使用的时候,在根据具体的需求来把方法写出来。

interface 接口名{

        属性

        方法

}

class 类名 implements 接口名{

        自己属性

        自己方法

        必须实现的接口的抽象方法

}

小结:jdk7之前,接口中所有方法都没有方法体,即都是抽象方法,jdk8之后,接口可以有默认实现方法,要求用default修饰,如default public void kkk(){}。jdk8之后还可以有静态方法

如果一个类implements一个接口,那么必须将该接口的所有方法都实现。

接口的使用细节

应用场景:我要制造飞机,只需要把功能、规格定下来即可,然后让别人实现。(统一一个入口)

细节:

1.接口不能被实例化

2.接口中所有的方法都是public方法(就算你不写它也是public的),接口中的抽象方法可以不用abstract修饰。

3.一个普通类实现接口,就必须将连接接口的所有方法都实现:快捷键alt+enter

4.抽象类实现接口,可以不用实现接口的方法。(即抽象类本身是允许存放抽象方法的!)

5.一个类同时可以实现多个接口.

6.接口中的属性只能是final的,而且是public static final int a = 1;

http://www.lryc.cn/news/367174.html

相关文章:

  • 嵌入式学习——Linux高级编程复习(目录IO、软硬连接、makefile)——day38
  • makefile与进度条
  • 操作系统总结
  • SpringCloud整合OpenFeign实现微服务间的通信
  • 老师必备!一文教你如何高效收集志愿填报信息
  • 创建 MFC DLL-使用DEF文件
  • 如何将HTTP升级成HTTPS?既简单又免费的方法!
  • 数据仓库之核心模型与扩展模型分离
  • 大龄职场人的春招机遇:技术岗位主导,高薪与挑战并存
  • 家宽动态公网IP,使用docker+ddns 实现动态域名解析
  • 【力扣刷题 动态规划】LeetCode 139 单词拆分、LeetCode 300 最长递增子序列 ✌
  • 【位运算】【前缀和】个人练习-Leetcode-1177. Can Make Palindrome from Substring
  • 最小相位系统
  • css系列:进度条
  • QT中为程序加入超级管理员权限
  • 共识算法之争(PBFT,Raft,PoW,PoS,DPoS)
  • 抽象的java入门1.3.0
  • 【Oracle生产运维】表空间可用性告警排查处理
  • mac Network: use --host to expose
  • ChatGPT-4o体验demo
  • FPGA SPI采集ADC7606数据
  • html three.js 引入.stl模型示例
  • 从零手写实现 nginx-11-文件处理逻辑与 range 范围查询合并
  • Java算法-力扣leetcode-167. 两数之和 II - 输入有序数组
  • 实战 | YOLOv10 自定义数据集训练实现车牌检测 (数据集+训练+预测 保姆级教程)
  • 自定义类型:结构体+结构体内存对齐+结构体实现位段
  • 0109__strip(1) command
  • 英码科技推出鸿蒙边缘计算盒子:提升国产化水平,增强AI应用效能,保障数据安全
  • 从军事角度理解“战略与战术”
  • 最短路径——迪杰斯特拉与弗洛伊德算法