允许使用抽象类类型 isearchboxinfo 的对象_final关键字、抽象类以及接口
![](/assets/blank.gif)
final关键字
基本概念
final本意为“最终的、不可改变的”,可以修饰类、成员方法以及成员变量。
使用方式
- final关键字修饰类体现在该类不能被继承。
- final关键字修饰成员方法体现在该方法不能被重写但可以被继承。
- final关键字修饰成员变量体现在该变量必须初始化且不能改变。
初始化的方式
- 显示初始化
- 在构造块中初始化
- 在构造方法体中初始化
常量的概念
在以后的开发中很少单独使用final关键字来修饰成员变量,通常使用public static final关键字共同修饰成员变量来表达常量的含义,常量的命名规范要求所有的字母都要大写,不同的单词之间采用下划线连接。
例如:public static final double PI = 3.14;
抽象方法和抽象类
抽象方法的概念
抽象方法主要指不能具体实现的方法并且使用abstract关键字修饰,也就是没有方法体。
具体格式
访问权限 abstract 返回值类型 方法名(形参列表);
抽象类的概念
抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是不能够创建对象。
抽象类和抽象方法的关系
- 抽象类中可以有普通类中所有的元素。
- 抽象类中可以有抽象方法,也可以没有抽象方法。
- 拥有抽象方法的类必须是抽象类,因此真正意义上的抽象类应该是具有抽象方法并且使用abstract关键字修饰的类。
抽象类的用途
- 抽象类的实际意义不在于创建对象而在于被继承。
- 当一个类继承抽象类后必须重写抽象方法,否则该类需要声明为抽象类,也就是抽象类对子类具有强制性和规范性,因此叫做模版设计模式。
接口
接口的基本概念
- 接口是一种比抽象类还抽象的类,体现在所有的方法都是抽象方法。
- 定义类的关键字是class,定义接口的关键字是interface。
- 接口中的常量前面的public、static和final可以省略。
- 接口中的抽象方法前面的public和abstract可以省略。
- 接口和抽象类中的抽象方法前面的修饰符必须是public修饰,
接口的作用
可以进行多实现,弥补了单继承的不足。
接口的注意事项
- 接口只能继承接口,不能继承类。
- implements关键字表示实现接口。
- 继承和实现都存在的话,extends在前,implements在后。
![](/assets/blank.gif)
接口和抽象类的主要区别
- 定义抽象类的关键字是abstract class,而定义接口的关键字是interface。
- 继承抽象类的关键字是extends,而实现接口的关键字是implements。
- 继承抽象类支持单继承,而实现接口支持多实现。
- 抽象类中可以有构造方法,而接口中不可以有构造方法。
- 抽象类中可以有成员变量,而接口中只能有常量。
- 抽象类中可以有成员方法,而接口中只能有抽象方法。
- 从java8开始增加新特性,接口中允许出现非抽象方法和静态方法,但非抽象方法需要使用default关键字修饰。实现类可以自由选择是否要去重写default关键字修饰的非抽象方法。
- 当接口的所有实现类对于某个方法的实现代码是相同的,那么可以将这个方法定义为接口的静态方法。
- 从java9开始增加新特性,接口中允许出现私有方法。因为接口中可能会有多个default修饰的非抽象方法,存在一种情况,这些非抽象方法的方法体中可能有相同的代码,而这些代码可以写到私有方法中,非抽象方法可以调用私有方法来减少代码的冗余。
![](/assets/blank.gif)
允许使用抽象类类型 isearchboxinfo 的对象_final关键字、抽象类以及接口相关推荐
- 允许使用抽象类类型 isearchboxinfo 的对象_Java新手必学:面向对象的特性都有哪些?...
面向对象是Java基础阶段最重要的知识点.那么面向对象到底有哪些特性你都知道吗? 今天我们就来具体学习一下Java面向对象的特性. 1.封装: 封装给对象提供了隐藏内部特性和行为的能力.外部无法直接访 ...
- 允许使用抽象类类型 isearchboxinfo 的对象_Java面向对象编程三大特征 - 多态
Java面向对象编程三大特征 - 多态 本文关键字:Java.面向对象.三大特征.多态 多态是面向对象编程的三大特征之一,是面向对象思想的终极体现之一.在理解多态之前需要先掌握继承.重写.父类引用指向 ...
- 允许使用抽象类类型 isearchboxinfo 的对象_此对象非彼对象(面向对象)3
java13面向对象深入3 大纲 这里没有写 面向对象-封装性 理解 封装( encapsulation)怎么去理解,一台电脑利用一个外壳包裹,保护了里面的电器元件,提供了少量的按键与其对接使用.我要 ...
- 允许使用抽象类类型 isearchboxinfo 的对象_Java学习5-设计模式+抽象类/方法
1.设计模式 设计模式:一套被反复使用.多数人知晓的,经过分类编目的.代码设计经验的总结,是软件开发人员在软件开发过程中面临的一般问题的解决方案. 项目中合理的运用设计模式可以完美的解决很多问题: 每 ...
- 不允许使用抽象类类型的对象怎么办_什么是抽象类?
抽象类概述 分析事物时, 发现了共性的内容,就出现向上抽取,但是如果父类 的方法功能与子类不同,那么这时就不抽取方法主体,这样抽取出来的方法 就是抽象方法 什么是抽象类 有抽象方法的类 抽象类和普通的 ...
- -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口
java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型 也就是 ...
- Java-面向对象之(抽象类+接口)
文章目录 一.抽象类 1.什么是抽象类 2.为什么会出现抽象类 3.抽象类的语法 二.接口 1.什么是接口 2.为什么会出现接口 3.接口的语法 4.接口的特性 1.接口之间的继承 5.接口的应用 三 ...
- Java基础(二)——IDEA快捷键、类和对象、三大特征、构造方法、对象比较、抽象类、接口、模拟发红包
IDEA常用快捷键 快捷键 功能 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 A ...
- JS类型判断、对象克隆、数组克隆
类型判断 我们先说一下JS的数据类型,我们一般说JS有六大数据类型(ES6以前)分别是: 基本数据类型 Number String Boolean null undefined 引用数据类型 obje ...
最新文章
- 零基础自学Python:安装Python、解释器、代码风格等
- CentOS7+CDH5.14.0安装全流程记录,图文详解全程实测-8CDH5安装和集群配置
- ipynb文件转为python(.py)文件
- linux下getrlimit与sysconf函数
- boost::timer库使用
- STM32_Systick学习及例程改写
- android中Canvas使用drawBitmap绘制图片
- vuejs之v-if-ajax异步请求数据遇到的坑
- HDU 4289 Control
- Java(面向对象OOP)
- 信息学奥赛一本通1032
- 防范勒索软件的七大举措
- linux下RTNETLINK answers: File exists的解决方案 慎重
- 苹果手机通过iCloud导出通讯录导入到安卓手机 教程
- 十秒清理电脑垃圾文件
- 分析企业上云的办法及意义
- Spring Boot 项目鉴权的 4 种方式
- linux网络凭据,适用于Linux和Windows的服务器凭据管理
- MATLAB弹出对话框的使用
- 百度站长工具 加广告 代码分析