第6篇 Java中的接口与抽象类
接口 Interface
在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。一个类通过实现接口(implements)的方式,从而实现接口的抽象方法。
- 接口通过interface关键字来定义
- 接口中不能实现方法,但是能声明方法
- 类通过implements关键字来实现接口
- 一个类如果实现了接口,就必须实现接口中的所有方法
- 一个类可以通过implements关键字实现多个接口,但只能继承一个父类
- 面向接口的多态(接口的引用指向其实现类)
- 接口不能被实例化
- 接口中的方法都是抽象方法(jdk1.8中出现的新特性:default、static。可以有方法体,不再是抽象方法。)
- 接口中一般没有属性,有则必须被声明为pulic static & final形式(不声明编译器自动设置为 public static final类型)
接口与类的区别
- 接口不能实例化对象
- 接口没有构造方法
- 接口中所有方法必须是抽象方法
- 接口不能包含成员变量,除非是public static final变量
- 接口不是被类继承了,而是要被类实现
- 接口支持多继承(接口与接口之间只能是继承extends的关系,可以多继承)
抽象类与接口的区别
- 抽象类中可以普通方法和抽象方法共存
- 抽象类中可以有各种类型的成员变量
- 接口中不能含有静态方法,抽象类中可以有
- 一个类只能继承一个抽象类,却可以实现多个接口
接口的声明
(想了想还是菜鸟教程的声明写的好看些)
[可见度] interface 接口名称 [extends 其他的类名] {// 声明变量// 抽象方法 }
接口的实现
类在实现接口时必须实现接口的所有方法。
接口可以实现多态的功能。
示例
interface USB{public void connect(); } //鼠标类实现USB接口 class Mouses implements USB{@Overridepublic void connect() {System.out.println("鼠标连接USB");} } //键盘类实现USB接口 class KeyBoard implements USB{@Overridepublic void connect() {System.out.println("键盘连接USB");} }
我们可以通过下面的方法来实现不同对象对接口的实现:
public static void useUSB(USB usb) {usb.connect(); }public static void main(String[] args) {Mouses mouses = new Mouses();KeyBoard keyBoard = new KeyBoard();useUSB(mouses);useUSB(keyBoard); }
通过给useUSB方法来传入不同的USB接口对象,从而达到多态的效果。最后打印结果如下:
鼠标连接USB 键盘连接USB
接口的继承
这里由于老师上课并没有重点提,不过在后面集合一章就是很明显的例子。
迭代器接口:
public interface Iterable<T> {/*** 迭代器的一些方法*/ ...... }
Collection 接口:
public interface Collection<E> extends Iterable<E> {/*** Collection 的一些方法*/......}
List 接口:
public interface List<E> extends Collection<E> {/*** List 的一些方法*/...... }
接口的多继承
接口的继承与类的继承一点很大的区别就在于接口可以多继承,多继承的方式与类实现多个接口的形式类似:
public interface Hockey extends Sports, Event
Java 抽象类(面试)
用·abstract修饰的类叫做抽象类
抽象类的一些特点
- 抽象类不能被实例化,只能实例化抽象类的子类。
- 抽象类不一定包含抽象方法,但包含抽象方法的类一定是抽象类
- 构造方法不能被声明成抽象方法
- 子类必须父抽象类的所有抽象方法,除非子类也是抽象类
- 用abstract修饰的方法称之为抽象方法,抽象方法只有方法声明,没有方法体
- 抽象类中的方法可以是抽象方法,也可以是普通方法
- 没有抽象的属性,属性不能被abstract修饰
转载于:https://www.cnblogs.com/JuanF/p/9272922.html
第6篇 Java中的接口与抽象类相关推荐
- Java中的接口与抽象类的区别
抽象类 抽象类的作用与C++类似,不能实例化.只能通过子类继承,再进行实例化.一般是为了确定一种统一的抽象格式. // 定义的抽象类 abstract class AbsClass{abstract ...
- JAVA中的接口和抽象类的区别
1.一个类可以实现多个接口,但是却只能继承最多一个抽象类: 2.抽象类可以包含具体的方法,接口的所有方法都是抽象的: 3.抽象类可以声明和使用字段:接口则不能,但接口可以创静态的final常量: 4. ...
- java中接口什么时候用_我什么时候应该在java中使用接口?
在Java中精确使用接口的一个很好的例子将是理想的,适用于任何特定的规则. 看看丹以前所有的问题,他似乎只是逐字逐句地张贴家庭作业/考试问题. 令人惊讶的是,这些不是考试题或其他-今天才找到这个网站, ...
- JAVA中常用接口的介绍及使用示例 java lang Comparable
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! JAVA ...
- Java中实现接口与继承的区别
** Java中实现接口与继承的区别 ** 首先,先来了解一下什么是接口和继承.接口一般是使用interface来定义的.接口定义同类的定义类似,分为接口的声明和接口体,其中接口体由常量定义和方法定义 ...
- Objective-C 入门(七)协议 protocol(JAVA中的接口)
Objective-C 入门(七)协议 protocol(JAVA中的接口) 接口的作用想必大家都比较了解 OV中的 protocol 相比接口作用相似 语法稍有不同 1.先来看声明一个协议 在创建文 ...
- Java中的接口命名[关闭]
本文翻译自:Interface naming in Java [closed] Most OO languages prefix their interface names with a capita ...
- Java 中 Comparable 接口的意义和用法.
在之前的博文中已经介绍了Java中Collection 接口和 Collections类. http://blog.csdn.net/nvd11/article/details/21516075 一, ...
- java中的接口的定义以及实现关系
一.什么是接口? - 硬件接口:设备之间的连接方式 - 软件接口:程序代码,特殊的类,表示一种规范,是具有N个方法的特征集合. java中的接口: 专家说的多个抽象类的抽象就是接口. interfac ...
最新文章
- mac mysql-python 失败_MAC OS安装MySQL-python总是失败,请帮忙看看什么原因?
- Hotspot GC Root 对应调用链
- 【牛客 - 373B】666RPG(线性计数dp)
- jQuery Mobile弹出对话框后不刷新原页面,保持原页面内容不变
- 【Flink】Flink 使用 ParameterTool 进行传参
- 考勤排班_考勤管理系统VS传统考勤排班优劣如何?
- 190713每日一句
- python智力问答测试_智力问答:经典的智力测试题
- jupyter notebook 拒绝连接 以及 查 IP
- 高级去雾算法与原理--暗原色图技术
- wps和office哪个好用 wps和office兼容吗
- python平行四边形函数_在Python中,如何确定一个点是否在某个平行四边形内?
- 二补数(2’scomplement)乘法算法及其Verilog实现 - 固定系数h
- 干货 | 科研人的KPI怎么算,H指数和G指数是什么
- webpack 3.0 + 从切图仔到前端工程师-姜威-专题视频课程
- RegExp——正则表达式
- 如何用项目管理软件,帮助项目经理监控项目进度?
- ERROR PythonRunner: Python worker exited unexpectedly (crashed)解决方法
- github上如何删除文件夹
- Java图片gh颜色渐变_强大的Java图像滤镜特效类库Java Image Filters
热门文章
- js 自己常用的小小技巧(持续更新)
- 不得不爱开源 Wijmo jQuery 插件集(13)-【Tooltip】(附页面展示和源码)
- 基于PSR-0编码规范开发一套PHP-MVC框架(二)
- 在Java中应用函数式编程请小心!
- 【重点】初窥Linux 之 我最常用的20多条命令
- 唠唠 RDS 那些事 —— RDS on Windows Server 2016 第二篇
- MyBatis3传递空值参数报异常的解决
- WINXP内PING一个IP地址时电脑会发出很响的一声“滴”声
- 机器视觉核心算法——图像预处理
- Q119:PBRT-V3,“复合重要性采样”(13.10章节)