四月二十一号Java知识基础
1.接口本身具有数据成员、抽象方法、默认方法、和静态方法,但它与抽象类不同
1)接口的数据成员都是静态的且必须初始化,即数据成员必须是静态常量
2)接口中除咯声明抽象方法外,还可以定义静态方法 和默认方法
2.接口定义格式:
[public] interface 接口名称 [extends 父接口列表]
{[public][static] 数据类型 常量名 = 常量
[public] [abstract] 返回值的数据类型 方法名(参数表)
[public] static 返回值的数据类型 方法名(参数表)
{
方法体
}
[public] default 返回值的数据类型 方法名(参数表)
{
方法体}}
3.注意:1)接口中的“抽象方法”只需要声明,不用定义其处理数据的方法体
2)数据成员必须是静态的且是赋初值的,即数据成员必须是静态常量
3)接口中的成员都是公共的,在定义接口时,若省略了public修饰符,在实现抽象方法时,则不能省略该修饰符
4.既然接口中有抽象方法,而抽象方法只需要声明而不用来定义方法体,所以接口与抽象类不能用new运算符创建对象
5.相反的,必须利用接口的特性创建一个新的类,然后再用它类创建对象
利用接口创建新类的过程称为接口的实现
6.接口实现的语言格式:
class 类名称 implements 接口名表
{
}
7.一个类实现一个接口时,注意问题:
1)如果实现某接口的类不是abstract的抽象类,则在类的定一部分必须指定接口的所有抽象方法,
即非抽象类中不能有抽象方法
2)一个类在实现某接口的抽象方法时,必须使用完全相同的方法头,否则只是在定义一个新方法,
而不是实现已有的抽象方法
3)接口中抽象方法的访问控制修饰符都已被指定为public,所以类在实现方法时,必须显示地使用
public修饰符,否则被系统警告为缩小接口中定义的方法的访问控制范围
4)与类一样,每个接口都被编译成独立的扩展名为.class的字节码文件
可以声明接口类型的变量或数组,并用它来访问实现该接口的类的对象
8.与类相似,接口也有继承性。定义一个接口时可通过extends关键字声明该新街口是某个已存在的
接口的子接口,它将继承父接口的常量,抽象方法和默认方法。
与类继承不同的是,一个接口可以有一个以上的父接口,它们之间用逗号分隔,形成父接口列表
新接口将继承所有父接口中的常量、抽象方法、默认方法,但不能继承父接口中的静态方法,也不能被
实现类继承
总结:今天天接触了接口,感觉比之前的复杂,是前面的综合,涉及到静态,构造方法,抽象方法以及继承
接口中的数据成员必须是静态且初始化,接口中除咯声明抽象方法外,还可以定义静态方法和默认方法
四月二十一号Java知识基础的更多相关文章
- java在线聊天项目 实现基本聊天功能后补充的其他功能详细需求分析 及所需要掌握的Java知识基础 SWT的激活方法,swt开发包下载,及破解激活码
补充聊天项目功能,做如下需求分析: 梳理项目开发所需的必要Java知识基础 GUI将使用更快速的swt实现 SWT(Standard Widget Toolkit) Standard Widget T ...
- 夯实Java基础(二十一)——Java反射机制
1.反射机制概述 Java反射机制是指程序在运行状态中,对于任何一个类,我们都能够知道这个类的所有属性和方法(包括private.protected等).对于任何一个对象,我们都能够对它的属性和方法进 ...
- 二十一、Java基础--------IO流之综合案例分析
前三篇文章详细介绍了IO流体系所涉及的重点内容,为了帮助理解与学习,本片博客主要是分析一个与IO操作相关的题目. 例1:在我们观看视频时经常要关注的就是视频的时间长度,在学习了IO操作之后,就可以自己 ...
- Java程序员从笨鸟到菜鸟之(二十一)java过滤器和监听器详解 【转】
过滤器 1.Filter工作原理(执行流程) 当客户端发出Web资源的请求时,Web服务器根据应用程序配置文件设置的过滤规则进行检查,若客户请求满足过滤规则,则对客户请求/响应进行拦截,对请求头和请 ...
- 《手把手教你》系列技巧篇(二十一)-java+ selenium自动化测试-浏览器窗口的句柄(详细教程)
1.简介 今天本来就要分享和讲解三大延时等待的,但是在写作过程中发了问题,会用到这一个知识点,于是就提前介绍一下,以便后边用到了可以更好的理解和掌握.本文就是要介绍如何获得浏览器窗体的句柄或者叫编号, ...
- day05<Java语言基础--数组>
Java语言基础(数组概述和定义格式说明) Java语言基础(数组的初始化动态初始化) Java语言基础(Java中的内存分配以及栈和堆的区别) Java语言基础(数组的内存图解1一个数组) Java ...
- Java基础知识二次学习-- 第二章 基础语法与递归补充
第二章 基础语法与递归补充 时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...
- Java开发知识之Java编程基础
Java开发知识之Java编程基础 一丶Java的基础语法 每个语言都有自己的语法规范.例如C++ 入口点是main. 我们按照特定格式编写即可. Java也不例外. Java程序的语法规范就是 Ja ...
- Java的基础知识一
一.什么是 Java 技术?为何需要 Java? Java 是由 Sun Microsystems 在 1995 年首先发布的编程语言和计算平台.有许多应用程序和 Web 站点只有在安装 Java 后 ...
- JAVA相关基础知识
JAVA相关基础知识 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分, ...
随机推荐
- OO课程第三阶段(实验和pta试题)总结Blog3
OO课程第三阶段(实验和pta试题)总结Blog3 前言:学习OOP课程的第三阶段已经结束了,在此进行对于知识点,题量,难度的个人看法. 学习OOP课程的第三阶段已经结束了,较第一次阶段学习难度加大, ...
- django_静态文件
**************************************************************************************************** ...
- Serverless 遇到 FinOps: Economical Serverless
Serverless 遇到 FinOps: Economical Serverless 摘要:本文基于 FunctionGraph 在 Serverless 领域的 FinOps 探索和实践,提出业界 ...
- psq强制携带-h
背景: pg更新后psql 指令必须携带 -h指令,导致很多直接使用"psql"的shell脚本无法连接. 方案: 1.挨个更新调用psql的地方: 显然太多了,改不过来. 2.新 ...
- elementui中对样式的修改标签
/deep/ .el-drawer.rtl { -webkit-animation: rtl-drawer-out .3s; animation: rtl-drawer-out .3s; backgr ...
- 痞子衡嵌入式:MCUBootUtility v2.3.1发布,解决了长久以来非空flash可能无法下载的问题
-- 痞子衡维护的NXP-MCUBootUtility工具距离上一个版本(v2.3)发布过去3个月了,这一次痞子衡为大家带来了小版本升级v2.3.1(第一次做x.y.z中z级别更新),这个版本主要有两 ...
- Python相关练习说明
Python练习情况说明 1.练习了在文件中进行统计的相关方法,基本操作其实差不多,步骤基本如下: # 1.打开相关文件,然后利用for循环进行按行读取的操作 # 2.读取的过程中,将读取到的数据加以 ...
- mysql中exists的用法简答
前言在日常开发中,用mysql进行查询的时候,有一个比较少见的关键词exists,我们今天来学习了解一下这个exists这个sql关键词的用法,这样在工作中遇到一些特定的业务场景就可以有更加多样化的解 ...
- Linux & 标准C语言学习 <DAY9_1>
2.函数传参: 1.函数中定义的变量属于该函数,出了该函数就不能再被别的函数直接使用 2.实参与形参之间是以赋值的方式进行传递数据的,并且是单项值传递 ...
- 改进 hibernate-validator,新一代校验框架 validator 使用介绍 v0.4
项目介绍 java 开发中,参数校验是非常常见的需求.但是 hibernate-validator 在使用过程中,依然会存在一些问题. validator 在 hibernate-validator ...