知识点思维导图

final关键字

基本概念

final本意为“最终的、不可改变的”,可以修饰类、成员方法以及成员变量。

使用方式

  1. final关键字修饰类体现在该类不能被继承。
  2. final关键字修饰成员方法体现在该方法不能被重写但可以被继承。
  3. final关键字修饰成员变量体现在该变量必须初始化且不能改变。

初始化的方式

  • 显示初始化
  • 在构造块中初始化
  • 在构造方法体中初始化

常量的概念

在以后的开发中很少单独使用final关键字来修饰成员变量,通常使用public static final关键字共同修饰成员变量来表达常量的含义,常量的命名规范要求所有的字母都要大写,不同的单词之间采用下划线连接。

例如:public static final double PI = 3.14;


抽象方法和抽象类

抽象方法的概念

抽象方法主要指不能具体实现的方法并且使用abstract关键字修饰,也就是没有方法体。

具体格式

访问权限 abstract 返回值类型 方法名(形参列表);

抽象类的概念

抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是不能够创建对象。

抽象类和抽象方法的关系

  1. 抽象类中可以有普通类中所有的元素。
  2. 抽象类中可以有抽象方法,也可以没有抽象方法。
  3. 拥有抽象方法的类必须是抽象类,因此真正意义上的抽象类应该是具有抽象方法并且使用abstract关键字修饰的类。

抽象类的用途

  1. 抽象类的实际意义不在于创建对象而在于被继承。
  2. 当一个类继承抽象类后必须重写抽象方法,否则该类需要声明为抽象类,也就是抽象类对子类具有强制性和规范性,因此叫做模版设计模式。

接口

接口的基本概念

  1. 接口是一种比抽象类还抽象的类,体现在所有的方法都是抽象方法。
  2. 定义类的关键字是class,定义接口的关键字是interface。
  3. 接口中的常量前面的public、static和final可以省略。
  4. 接口中的抽象方法前面的public和abstract可以省略。
  5. 接口和抽象类中的抽象方法前面的修饰符必须是public修饰,

接口的作用

可以进行多实现,弥补了单继承的不足。

接口的注意事项

  1. 接口只能继承接口,不能继承类。
  2. implements关键字表示实现接口。
  3. 继承和实现都存在的话,extends在前,implements在后。

接口和抽象类的主要区别

  1. 定义抽象类的关键字是abstract class,而定义接口的关键字是interface。
  2. 继承抽象类的关键字是extends,而实现接口的关键字是implements。
  3. 继承抽象类支持单继承,而实现接口支持多实现。
  4. 抽象类中可以有构造方法,而接口中不可以有构造方法。
  5. 抽象类中可以有成员变量,而接口中只能有常量。
  6. 抽象类中可以有成员方法,而接口中只能有抽象方法。
  7. 从java8开始增加新特性,接口中允许出现非抽象方法和静态方法,但非抽象方法需要使用default关键字修饰。实现类可以自由选择是否要去重写default关键字修饰的非抽象方法。
  8. 当接口的所有实现类对于某个方法的实现代码是相同的,那么可以将这个方法定义为接口的静态方法。
  9. 从java9开始增加新特性,接口中允许出现私有方法。因为接口中可能会有多个default修饰的非抽象方法,存在一种情况,这些非抽象方法的方法体中可能有相同的代码,而这些代码可以写到私有方法中,非抽象方法可以调用私有方法来减少代码的冗余。

允许使用抽象类类型 isearchboxinfo 的对象_final关键字、抽象类以及接口相关推荐

  1. 允许使用抽象类类型 isearchboxinfo 的对象_Java新手必学:面向对象的特性都有哪些?...

    面向对象是Java基础阶段最重要的知识点.那么面向对象到底有哪些特性你都知道吗? 今天我们就来具体学习一下Java面向对象的特性. 1.封装: 封装给对象提供了隐藏内部特性和行为的能力.外部无法直接访 ...

  2. 允许使用抽象类类型 isearchboxinfo 的对象_Java面向对象编程三大特征 - 多态

    Java面向对象编程三大特征 - 多态 本文关键字:Java.面向对象.三大特征.多态 多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一.在理解多态之前需要先掌握继承.重写.父类引用指向 ...

  3. 允许使用抽象类类型 isearchboxinfo 的对象_此对象非彼对象(面向对象)3

    java13面向对象深入3 大纲 这里没有写 面向对象-封装性 理解 封装( encapsulation)怎么去理解,一台电脑利用一个外壳包裹,保护了里面的电器元件,提供了少量的按键与其对接使用.我要 ...

  4. 允许使用抽象类类型 isearchboxinfo 的对象_Java学习5-设计模式+抽象类/方法

    1.设计模式 设计模式:一套被反复使用.多数人知晓的,经过分类编目的.代码设计经验的总结,是软件开发人员在软件开发过程中面临的一般问题的解决方案. 项目中合理的运用设计模式可以完美的解决很多问题: 每 ...

  5. 不允许使用抽象类类型的对象怎么办_什么是抽象类?

    抽象类概述 分析事物时, 发现了共性的内容,就出现向上抽取,但是如果父类 的方法功能与子类不同,那么这时就不抽取方法主体,这样抽取出来的方法 就是抽象方法 什么是抽象类 有抽象方法的类 抽象类和普通的 ...

  6. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  7. Java-面向对象之(抽象类+接口)

    文章目录 一.抽象类 1.什么是抽象类 2.为什么会出现抽象类 3.抽象类的语法 二.接口 1.什么是接口 2.为什么会出现接口 3.接口的语法 4.接口的特性 1.接口之间的继承 5.接口的应用 三 ...

  8. Java基础(二)——IDEA快捷键、类和对象、三大特征、构造方法、对象比较、抽象类、接口、模拟发红包

    IDEA常用快捷键 快捷键 功能 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 A ...

  9. JS类型判断、对象克隆、数组克隆

    类型判断 我们先说一下JS的数据类型,我们一般说JS有六大数据类型(ES6以前)分别是: 基本数据类型 Number String Boolean null undefined 引用数据类型 obje ...

最新文章

  1. 零基础自学Python:安装Python、解释器、代码风格等
  2. CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置
  3. ipynb文件转为python(.py)文件
  4. linux下getrlimit与sysconf函数
  5. boost::timer库使用
  6. STM32_Systick学习及例程改写
  7. android中Canvas使用drawBitmap绘制图片
  8. vuejs之v-if-ajax异步请求数据遇到的坑
  9. HDU 4289 Control
  10. Java(面向对象OOP)
  11. 信息学奥赛一本通1032
  12. 防范勒索软件的七大举措
  13. linux下RTNETLINK answers: File exists的解决方案 慎重
  14. 苹果手机通过iCloud导出通讯录导入到安卓手机 教程
  15. 十秒清理电脑垃圾文件
  16. 分析企业上云的办法及意义
  17. Spring Boot 项目鉴权的 4 种方式
  18. linux网络凭据,适用于Linux和Windows的服务器凭据管理
  19. MATLAB弹出对话框的使用
  20. 百度站长工具 加广告 代码分析

热门文章

  1. linux下应用程序性能剖分神器gprofiler-tools-安装和使用
  2. 【2.CentOS6.8安装JDK】
  3. JavaScript的前世今生
  4. c/c++左值和右值
  5. SQL Server中TOP子句可能导致的问题以及解决办法
  6. Ubuntu、CentOS 解决docker命令权限问题(sudo)
  7. git每次操作提示输入密码问题解决
  8. 连接池你用对了吗?一次Unexpected end of stream异常的排查
  9. linux配置静态IP后ping外网不通的解决方案
  10. 如何在TypeScript中删除数组项?