java基础学习之接口
接口可以说是一个特殊的抽象类,接口里的方法都是抽象方法,
接口的特点:
1、一个类可以实现多个接口,也可以在继承一个类后继续实现多个接口(多实现间接支持了类的多继承)
2、接口可以继承另一个接口,并且可以继承多个
之所以能继承多个的原因是接口中都是抽象方法,没有方法体,也就是没有方法的具体实现需要实现该接口的类自己来实现,这就不存在多继承时遇到相同 方法时不知道调用哪一个的问题;而类之所以不能继承多个 类的主要原因也就是调用的不确定性,如果两个父类有相同的方法子类调用该方法时不知道调用哪一个;
3、接口是某一功能对外暴露的规则,是对事物的一个功能的拓展,能降低耦合性,并且可以多实现;
举例:电脑的usb接口就是电脑连接鼠标、键盘等功能对外暴露的一个规则,是对电脑本身功能的一个扩展,能降低鼠标与电脑的耦合性,并且键盘.优盘都可以对该接口进行功能的实现,体现了多实现
接口与抽象类的区别:
相同点:都是对某些事物的一个抽象描述,都不能被实例化
不同点:1、抽象类中可以有抽象方法也可以有非抽象方法,非抽象方法可以被子类拿来直接使用
接口中只能有抽象方法不可以有非抽象方法,并且接口中的成员都有固定修饰符:
成员常量一般用public static final 来修饰
方法一般用public abstract来修饰,但修饰符都可以省略不写
2、抽象类是通过继承来体现其作用,子类与其的关系是 is a ,定义继承其所有子类的共性内容
接口是通过实现来体现其作用,实现的类与其的关系是like a,定义实现其所有类的额外功能,需要这个功能则实现该接口不需要则不实现
java基础学习之接口的更多相关文章
- java基础学习总结-接口
原文链接:http://www.cnblogs.com/xdp-gacl/p/3651121.html 一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如"金丝猴是 ...
- java基础学习总结——接口
一.接口的概念 JAVA是只支持单继承的,但现实之中存在多重继承这种现象,如“金丝猴是一种动物”,金丝猴从动物这个类继承,同时“金丝猴是一种值钱的东西”,金丝猴从“值钱的东西”这个类继承,同时“金丝猴 ...
- 转载-java基础学习汇总
共2页: 1 2 下一页 Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3 Java基础学习总结——Java对象的序列化和 ...
- Java基础学习笔记总结
Java基础学习笔记一 Java介绍 Java基础学习笔记二 Java基础语法之变量.数据类型 Java基础学习笔记三 Java基础语法之流程控制语句.循环 Java基础学习笔记四 Java基础语法之 ...
- Java基础-Collection子接口之Set接口
Java基础-Collection子接口之Set接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学习Collection接口时,记得Collection中可以存放重复元素,也可 ...
- 尚学堂JAVA基础学习笔记
目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...
- Java基础学习(2)
Java基础学习(二) 面向对象 对象:客观存在的事物 面向对象:人具体关注的事物的某些信息 类:是模子,确定对象会拥有的特征(属性)和行为(方法) 对象的属性:对象具有的各种特征 对象的方法:对象能 ...
- Java基础学习-- 继承 的简单总结
代码参考:Java基础学习小记--多态 为什么要引入继承? 还是做一个媒体库,里面可以放CD,可以放DVD.如果把CD和DVD做成两个没有联系的类的话,那么在管理这个媒体库的时候,要单独做一个添加CD ...
- Java基础学习中一些词语和语句的使用
在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...
随机推荐
- 爬起点小说 day02
总的来说起点小说还是挺好爬的,就是爬取小说的时候太慢了,4000多本小说就爬了2天一夜 首先爬取的是网页的所有类别,并把类别名存入到mongodb中,链接存到redis中: import scrapy ...
- opencv学习之路(26)、轮廓查找与绘制(五)——最小外接矩形
一.简介 二.轮廓最小外接矩形的绘制 #include "opencv2/opencv.hpp" using namespace cv; void main() { //轮廓最小外 ...
- linux基础之find
linux上文件查找工具: locate, find locate: 依赖于事先构建的索引,索引的构建在系统较为空闲时自动进行(周期性任务),手动更新数据库(updatedb) 索引构建过程需要遍历整 ...
- 阿里技术专家详解Dubbo实践,演进及未来规划
https://mp.weixin.qq.com/s/9rVGHYfeE8yM2qkSVd2yEQ
- FLEX外包团队:Flex例子DEMO源码
代码如下: <?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx=& ...
- python非官方模块下载大全
网址: https://www.lfd.uci.edu/~gohlke/pythonlibs/ 包含了Ta-Lib和PyQt4等模块.
- Annotaion——深入理解注解类型
什么是注解? 对于很多初次接触的开发者来说应该都有这个疑问?Annontation是Java5开始引入的新特征,中文名称叫注解.它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metada ...
- C# 关键字this用法
1.this代表当前类的实例对象 public class Test { public string Name{get;set;} public void TestChange(string strN ...
- wireshark捕获/显示过滤器表达式书写规律说明
一.说明 1.1 背景说明 对于大多数刚开始接触wireshark的使用者而言,经常是开始的时候时候看到wireshark能把所有数据包都拦截下来觉得强无敌,但是面对一大堆的数据包要问有什么用或者说想 ...
- 精选!15 个必备的 VSCode 插件(前端类)
精选!15 个必备的 VSCode 插件(前端类) 就像大多数 IDE 一样,VSCode 也有一个扩展和主题市场,包含了数以千计质量不同的插件.为了帮助大家挑选出值得下载的插件,我们针对性的 ...