java基础笔记(8)----接口
- 接口
是特殊的抽象类,纯抽象类---所有方法都是抽象方法
接口和抽象类的区别;
相同点:
- 编译后,会分别生成对应的.class文件
- 都不能创建对象(实例化),但是可以生成引用(使用多态)
不同点:
- 抽象类有构造方法;接口没有构造方法;
- 接口中的属性 默认是public static final的(常量);
- 接口中的方法 默认是public abstract的。
- 定义
- 接口的语法:
修饰符(public/默认) interface 接口名{}
interface 子接口名 extends 父接口名1,父接口名2,.... {}
- 类和接口的关系:
- class 实现类名 implements 父接口名1,父接口名2,....{}
- 类、类、接口的关系:
- class 类名 extends 父类名 implements 父接口名1,父接口名2,....{}
- 注意:
- 1个类实现父接口,必须实现父接口中的所有方法;除非该类是抽象的;
- 实现类在实现父接口的方法 时,方法 的访问修饰符 必须是public的;
- 引用类型相互转换时,不论是否实现/继承某个接口,当强转成接口类型时,编译都OK;但 运行时,可能会出现ClassCastException。
|
package com.lvsling.test; //接口 public public MyClass m = new MyClass(); Super s = m; //多态(父类的引用 s.m(); MyClass m2 = (MyClass)s; m2.m5(); Interface1 i1 = m; i1.m1(); Interface2 i2 = m; i2.m2(); Interface3 i3 = m; //多态 i3.m3(); Interface4 i4 = m; i4.m4(); i4.m1(); i4.m2(); } } abstract public public } interface Interface1{ int void m1(); } interface Interface2{ void m2(); } interface Interface3{ void m3(); } interface Interface4 extends Interface1,Interface2{ void m4(); } class MyClass extends Super implements Interface3,Interface4{ public public public public public } class Super{ public } |
- 拓展与提升
- 在面向对象中,承在类与类中是单继承,接口与接口之间是多继承关系;类与接口之间是多实现关系。
- 接口----是规范,是标准(好处)
- 多继承关系
- 有了接口,把程序中的主要功能 和 次要功能分开,主要功能 使用单继承的简单性进行重点实现,一旦主要功能实现了 次要功能根据需要 定义在接口中 进行多实现。
- 弱耦合性
- 接口定义后,把 接口的使用者和实现者 进行了分离,借助 多态 降低了程序间的耦合性。
- 接口回调:接口定义后,先定义接口的使用者 后定义接口的实现者。
|
package com.lvsling.test; public public Lamp lamp = new Lamp(); //红灯泡使用 RedLight redLight = new RedLight(); lamp.setLight(redLight); lamp.on(); } } // 标准-接口 interface Light{ void shine(); } // 台灯--标准的使用者 class Lamp{ // 灯口--用标准 private Light light; // 开 public light.shine(); } // get/set public Light getLight(){ return } public this.light = light; } } // 红灯泡--标准的实现者 class RedLight implements Light{ public System.out.println("发出红光…………"); } } |
java基础笔记(8)----接口的更多相关文章
- Java基础笔记 – Annotation注解的介绍和使用 自定义注解
Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 | 被围观 25,969 views+ 1.Anno ...
- 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错
原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...
- Java基础-通过POI接口处理xls
Java基础-通过POI接口处理xls 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.
- Java基础-Collection子接口之Set接口
Java基础-Collection子接口之Set接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 学习Collection接口时,记得Collection中可以存放重复元素,也可 ...
- Java基础-Collection子接口之List接口
Java基础-Collection子接口之List接口 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们掌握了Collection接口的使用后,再来看看Collection接口中 ...
- 《Java基础——抽象与接口》
Java基础--抽象与接口 一.抽象: 规则: 关键字 abstract 修饰的类称为抽象类. 子类通过关键字extends实现继承. 关键字 abstract 修饰的方法称为抽象方法,抽 ...
- 黑马程序员----java基础笔记中(毕向东)
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...
- 黑马程序员----java基础笔记上(毕向东)
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...
- Java 基础三、接口与内部类
1. 在Java程序语言中,接口是对类的一种描述.例如Arrays类中sort方法声明可以对对象进行排序,但前提是对象所属的类必须实现Comparable接口. public interface ...
- Java基础笔记1
java (开源,跨操作系统)j2ee jre java基础 javaoop java高级 JDK(JAVA developer Kitool): java开发工具 (开发人员使用) JRE(java ...
随机推荐
- linux c语言 select函数用法
linux c语言 select函数用法 表头文件 #i nclude<sys/time.h> #i nclude<sys/types.h> #i nclude<unis ...
- VxWorks 符号表
符号表初始化 符号表用于建立符号名称.类型和值之间的关系.其中,名称为null结尾的任意字符串:类型为标识各种符号的整数:值为一个字符指针.符号表主要用来作为目标模块加载的基础,但 ...
- web开发性能优化---数据库篇
1. 查询出的数据量过大(可以采用多次查询,其他的方法降低数据量),尽量采取分页查询数据 2.锁或者死锁(这也是查询慢最常见的问题,是程序设计的缺陷) 3.返回了不必要的行和列 用OR的字句可以分解成 ...
- 深入理解javascript中的事件循环event-loop
前面的话 本文将详细介绍javascript中的事件循环event-loop 线程 javascript是单线程的语言,也就是说,同一个时间只能做一件事.而这个单线程的特性,与它的用途有关,作为浏览器 ...
- iOS - EaseMob 环信的使用
1.环信 环信使用的是 XMPP 协议,它是在 XMPP 的基础上进行的二次开发,对服务器 Openfire 和客户端进行功能模型的添加和客户端 SDK 的封装.环信的本质还是使用 XMPP,基于 S ...
- Java双等号,Equals(),HashCode()小结
默认情况 - 双等号==,比较的是内存地址. - equals(),默认比较的是内存地址. - hashCode(),默认返回的是object的内存地址. String中方法改写的情况 经常会遇到需要 ...
- [POI2007]ATR-Tourist Attractions [TPLY]
[POI2007]ATR-Tourist Attractions 题目链接(https://www.luogu.org/problemnew/show/P3451) 这种稠密图还是建议你不要跑spfa ...
- 【BZOJ1477】青蛙的约会(拓展欧几里得)
[BZOJ1477]青蛙的约会(拓展欧几里得) 题面 题目描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为 ...
- Poj3321 Apple tree
翻译: 卡卡屋前有一株苹果树,每年秋天,树上长了许多苹果.卡卡很喜欢苹果.树上有N个节点,卡卡给他们编号1到N,根的编号永远是1.每个节点上最多结一个苹果.卡卡想要了解某一个子树上一共结了多少苹果. ...
- luogu 访问”美术馆“ && 偷天换日
把这两个题放在一起,是因为这两个题差不多,难度递进其实是懒得写两个博客所以一起分享一下 访问“美术馆” 题目描述 经过数月的精心准备,Peer Brelstet,一个出了名的盗画者,准备开始他的下一个 ...