接口

/*
使用关键字interface来定义一个接口。接口的定义和类的定义很相似,分为接口声明和接口体
*/
interface Printable{ final int max=100;
void add();
float sum(float x,float y);
}

声明格式:

interface 接口名

接口声明:

//接口体中包含常量的声明(没有变量)和抽象方法两部分。接口体中只有抽象方法,没有普通方法,高版本的jdk即使我们不加abstract,static也会自动帮我们添加

实现接口

实现接口:

class  A  implements   Printable,Addable

class   Dog   extends   Animal   implements    Eatable,Sleepable

重写接口中的方法:

如果一个非抽象类实现了某个接口,那么这个类必须重写这个接口中 的所有方法
/*
*注意
*/ 程序可以用接口名访问接口中的常量,当然如果一个类实现了该接口,也可以直接访问

接口的UML

接口回调

和类一样,接口也是Java中一种重要的数据类型,用接口声明的变量称作接口变量,那么接口变量中可以存放怎样的数据呢?
接口属于引用型变量,接口变量中可以存放实现该接口的类的实例的引用,及存放对象的引用,比如说,设Com为一个接口,那么就可以用Com声明一个变量
Com com;
/*

此时com中的值还是null,假设ImpleCom类实现了Com接口,用ImpleCom创建名字为object的对象那么object对象不仅可以调用ImpleCom类中的原有方法,
而且也可以调用ImpleCom类实现的接口方法 */
Com  com;//接口
ImpleCom object=new ImpleCom();//接口实现类
com=object;//赋值 //注意:接口无法调用类中的其他的非接口方法

理解接口

1.
接口可以抽象出重要的行为标准,该行为标准用抽象的方法来表示 2.
可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法,即体现该类根据接口里的行为标准给出具体行为(面向接口编程)

接口与多态

不同的类在实现同一接口的时候可能具有不同 的实现方式,那么接口变量在回调接口方法的时候就可能具有多种形态;
/*
*例如:对于a,b两个正数,有人算术平方根(a+b)/2计算
* 有的人使用几何平均方式:根号(a*b)计算
*/

接口参数

如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的引用传递给该方法,那么接口参数就可以回调实现类的接口方法;

abstract类和接口的比较

1.abstract  类和接口都有abstract方法
2.接口中只可以有常量,不能有变量,而 abstract 类既可以有常量也可以有变量
3.abstract 类中也可以有非abstract方法,接口中不可以

面向接口编程

/*
*接口只关心操作,不关心这些操作的具体实现细节,可以使我们把主要的精力放到程序的设计上不必拘泥细节的实现
*/

小结

Java基础知识笔记第六章:接口的更多相关文章

  1. Java基础知识笔记(七:接口、变量作用域和参数传递)

    一.接口 Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类.但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性.接口的定义格 ...

  2. Java基础知识笔记第七章:内部类和异常类

    内部类 /* *Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类 */ 重要关系: /* *1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方 ...

  3. Java基础知识笔记第四章:类和对象

      编程语言的几个发展阶段 面向机器语言 面向过程语言 面向对象语言:封装.继承.多态 类 类声明 class Person{ ....... } class 植物{ ....... } 类体 类使用 ...

  4. Java基础知识笔记第三章:运算符表达式语句

    算术运算符与表达式 操作符 描述 例子 + 加法 - 相加运算符两侧的值 A + B 等于 30 - 减法 - 左操作数减去右操作数 A – B 等于 -10 * 乘法 - 相乘操作符两侧的值 A * ...

  5. Java基础知识笔记(六:网络程序设计)

    一.统一资源定位地址(URL) (1)网络地址 在网络上,计算机是通过网络地址标识.网络地址通常有两种表示方法,第一种表示方法通常采用4个整数组成,例如: 166.111.4.100表示某一网站服务器 ...

  6. Java基础知识笔记第五章:子类与继承

    子类与父类 子类 class 子类名 extends 父类名{ ....... } 类的树形结构 子类的继承性 子类和父类在同一包中的继承性 子类继承了父类不是private的成员属性和成员方法   ...

  7. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  8. Java基础知识笔记(八:集合类)

    目录 1  集合类简介  2  List介绍及简单使用 2.1  LinkedList介绍及简单使用 2.2  ArrayList介绍及简单使用 2.3  Vector介绍及简单使用 2.3.1  S ...

  9. [core java学习笔记][第六章接口与内部类]

    接口域内部类 接口 描述类具有什么功能,不给出具体实现. 内部类 用于设计协作关系的类集合 代理 实现任意接口的对象. 6.1 接口 接口声明 public interface Comparable ...

随机推荐

  1. linux使用tree将目录结构写进txt

    比如把caffe的二级目录结构写进txt: tree -L > /home/wmz/treecaffe.txt 则会在/home/wmz/目录下生成一个名为treecaffe.txt的文件,文件 ...

  2. Dart语言学习(四)Dart字符串

    一.字符串的创建 使用 单引号,双引号 创建字符串 使用 三个引号或双引号 创建多行字符串 使用 r 创建原始 raw 字符串 String str1 = 'Hello';//"" ...

  3. python学习之matplotlib绘制动图(FuncAnimation()参数)

    1.函数FuncAnimation(fig,func,frames,init_func,interval,blit)是绘制动图的主要函数,其参数如下: a.fig 绘制动图的画布名称 b.func自定 ...

  4. Python实现云服务器防止暴力密码破解

    云服务器防止暴力密码破解 云服务器暴露在公网上,每天都有大量的暴力密码破解,更换端口,无济于事,该脚本监控安全日志,获取暴力破解的对方ip,加入hosts黑名单 路径说明 描述 路径 登录安全日志 / ...

  5. Spring Boot 框架 - 快速创建Spring Boot应用

    使用Spring的项目创建向导创建一个Spring Boot项目 创建完成目录 目录文件说明: 主启动程序已生成 resources文件夹中目录结构 static:保存所有的静态资源,例如js,css ...

  6. Linux-VMware 15 虚拟机黑屏问题

    VMware 15 虚拟机黑屏问题   最近终于舍弃win7,换了win10的操作系统...   VM12不兼容,各种问题频出,于是换了VM15. 新装了kali2019.03,结果刚装好不久,在某一 ...

  7. java处理节假日和工作时间的工具类

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; impo ...

  8. LA 3708 墓地雕塑(模拟)

    题目链接:https://vjudge.net/problem/UVALive-3708 这道题的思路也是比较难想. 首先根据上一题(Uva 11300)可知,要想让移动距离最短,那么至少要使一个雕塑 ...

  9. 微信小程序媒体音乐API更新小记,以及音乐外链制作方法

    假期开发微信小程序玩的时候发现音乐播放功能,但是教程中的旧版API已经不能成成功打开 官方文档写的很清楚,旧版接口不再维护,使用新版接口,换API后,又出现了新的问题,虽然没有报错信息,但是播放器闪退 ...

  10. MYSQL双查询错误1

    一.基础知识 开始讲解MYSQL双查询错误之前,我们先了解一下双查询语句以及需要使用到的几个数据库函数和GROUP BY语句 1. 双查询语句 先了解一下什么是子查询,子查询就是嵌入第一层select ...