java接口概述及特点


- 1 package face_09;
- 2
- 3
- 4
- 5
- 6 abstract class AbsDemo{
- 7 abstract void show1();
- 8 abstract void show2();
- 9 }
- 10 /*
- 11 * 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用
- 12 * 另一种形式定义和表示,就是接口 interface。
- 13 */
- 14 //定义接口使用的关键字不是class,是interface
- 15
- 16 /*
- 17 * 对于接口当中常见的成员,而且这些成员都有固定的修饰符。
- 18 * 1,全局常量。 public static final
- 19 * 2,抽象方法。 public abstract
- 20 * 由此得出结论,接口中的成员都是公共的权限。
- 21 */
- 22
- 23 interface Demo{//虽然不是class类但编译完还是class文件
- 24 public static final int NUM = 4;//即使没写public staitic finale 和public abstract 系统会自动加上
- 25 public abstract void show1();
- 26 public abstract void show2();//如果没写public abstract,你用非public方法覆盖可能会出错,权限冲突
- 27 }
- 28 //类与类之间是继承关系,类与接口直接是实现关系。
- 29 /*
- 30 * 接口不可以实例化。
- 31 *
- 32 * 只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。
- 33 * 否则,这个子类就是一个抽象类。
- 34 */
- 35 class DemoImpl implements /*实现*/Demo {
- 36 public void show1() {
- 37
- 38 }
- 39 public void show2() {
- 40
- 41 }
- 42 }
- 43 /*
- 44 * 在java中不直接支持多继承,因为会出现调用的不确定性。
- 45 * 所以java将多继承机制进行改良,在java中变成了多实现。
- 46 *
- 47 * 一个类可以实现多个接口。
- 48 */
- 49 interface A {
- 50 public abstract void show();
- 51 }
- 52 interface Z{
- 53 public abstract void show(int a);//即使有返回值也可以实现,这只是个功能,但是实现的两个方法不能重名
- 54 }
- 55 class Test implements A,Z{//多实现
- 56 public void show() {
- 57
- 58 }
- 59 public void show(int a) {
- 60
- 61 }
- 62 }
- 63
- 64 /*
- 65 * 一个类在继承另一个类的同时,还可以实现多个接口。
- 66 */
- 67 class Q{
- 68 public void method() {
- 69
- 70 }
- 71 }
- 72 abstract class Test2 extends Q implements A,Z {
- 73
- 74 }
- 75 /*
- 76 * 接口的出现避免了单继承的局限性。
- 77 *
- 78 */
- 79 interface CC{
- 80 void show();
- 81 }
- 82 interface MM{
- 83 void method();
- 84 }
- 85 interface QQ extends CC,MM{//接口与接口之间是继承关系,而且接口可以多继承
- 86 void fuction();
- 87 }
- 88 class WW implements QQ{
- 89 //覆盖三个方法。
- 90 public void show() {};
- 91 public void method() {};
- 92 public void function() {};
- 93 }
- 94 public class InterfaceDemo {
- 95 public static void main(String[] args) {
- 96 Test test = new Test();
- 97 test.show();//防止多继承带来的隐患 因为没有了方法体
- 98 DemoImpl d = new DemoImpl();
- 99 System.out.println(d.NUM);
- 100 System.out.println(DemoImpl.NUM);
- 101 System.out.println(Demo.NUM);
- 102 }
- 103 }
- 104 /*
- 105 * 接口的特点:
- 106 * 1,接口是对外暴露的规则。
- 107 * 2,接口是程序的功能扩展。
- 108 * 3,接口的出现降低耦合性。
- 109 * 4,接口可以用来多实现。
- 110 * 5,类与接口是实现关系,而且类可以继承一个类的同时实现多个接口。
- 111 * 6,接口与接口之间可以有继承关系。
- 112 */
java接口概述及特点的更多相关文章
- Java集合----概述、Collection接口、Iterator接口
Java 集合概述 Java 集合就像一种容器,可以把多个对象的引用放入容器中. Java 集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组 Java 集合可分为 Set.Li ...
- Java Annotation概述
@(Java)[Annotation|Java] Java Annotation概述 用途 编译器的相关信息,如用于检测错误和一些警告 编译时和部署时的处理,如一些软件用于自动生成代码之类的 运行时处 ...
- 《java集合概述》
JAVA集合概述: Collection: |---List有序的:通过索引就可以精确的操作集合中的元素.元素是可以重复的. List提供了增删改查的动作. 增加add(element) add(in ...
- Java 接口和抽象类差别
原文:http://blog.csdn.net/sunboard/article/details/3831823 1.概述 一个软件设计的好坏,我想非常大程度上取决于它的总体架构,而这个总体架构事实上 ...
- Java集合概述、Set集合(HashSet类、LinkedHashSet类、TreeSet类、EnumSet类)
Java集合概述.Set集合(HashSet类.LinkedHashSet类.TreeSet类.EnumSet类) 1.Java集合概述1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指 ...
- Java笔记:Java集合概述和Set集合
本文主要是Java集合的概述和Set集合 1.Java集合概述 1)数组可以保存多个对象,但数组长度不可变,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保存数量变化的数据,数组 ...
- Java NIO学习笔记一 Java NIO概述
Java NIO概述 Java NIO(新的IO)是Java的替代IO API(来自Java 1.4),这意味着替代标准的 java IO和java Networking API.Java NIO提供 ...
- java基础---java语言概述
一.计算机编程的两种范型 1.面向过程的模型---具有线性执行特点,认为是代码作用于数据. 2.面向对象的模型---围绕它的数据(即对象)和为这个数据定义的接口来组织程序:实际上是用数据控制代码的访问 ...
- Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述
第1章 Java程序设计概述1.1 Java程序设计平台 具有令人赏心悦目的语法和易于理解的语言,与其他许多优秀语言一样,Java满足这些要求. 可移植性 垃圾收集 提供大型的库 如果想要有奇特的绘 ...
随机推荐
- SpringBoot 整合es(elasticsearch)使用elasticsearch-rest-high-level-client实现增删改
引入依赖 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok< ...
- windows平台使用 pthreads库
note 近日封装一些跨平台库时, 发现线程的创建需要做平台的区分, windows的线程创建和Linux下的线程操作不一样.很麻烦,还要做平台区分. 能否在windows上使用pthread的线程库 ...
- B. Destroying Roads
Destroying Roads 题目链接 题意 n个点,m条边每两个点之间不会有两个相同的边,然后给你两个起s1,s2和终点t1,t2; 求删除最多的边后满足两个s1到t1距离\(<=l1\) ...
- Rikka with wood sticks(hdu5203)
Rikka with wood sticks Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/O ...
- CAS学习笔记一:CAS 授权服务器简易搭建
什么是CAS CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议.CAS 是 耶鲁大学(Yale University)发起的一个开源项目, ...
- 【操作系统】bat文件 系统找不到文件路径
我直接使用bat文件发现我要删除的文件夹还在 在bat文件最后添加pause指令查看发现报错:系统找不到文件路径 原因:路径包括中文,显示乱码(因为txt另存为bat时用量utf-8编码) 解决方法: ...
- 数据结构作业——P53算法设计题(6):设计一个算法,通过一趟遍历确定长度为n的单链表中值最大的结点
思路: 设单链表首个元素为最大值max 通过遍历元素,与最大值max作比较,将较大值附给max 输出最大值max 算法: /* *title:P53页程序设计第6题 *writer:weiyuexin ...
- 使用PyTorch构建神经网络以及反向传播计算
使用PyTorch构建神经网络以及反向传播计算 前一段时间南京出现了疫情,大概原因是因为境外飞机清洁处理不恰当,导致清理人员感染.话说国外一天不消停,国内就得一直严防死守.沈阳出现了一例感染人员,我在 ...
- 基于Spring MVC + Spring + MyBatis的【人事管理系统】
资源下载:https://download.csdn.net/download/weixin_44893902/33163160 一.语言和环境 实现语言:JAVA语言 环境要求:IDEA/Eclip ...
- Layui的本地存储方法-Layui.data的基本使用
本地存储是对 localStorage 和 sessionStorage 的友好封装,可更方便地管理本地数据. localStorage 持久化存储:layui.data(table, setting ...