接口的定义:
使用interface来定义一个接口。接口定义与类的定义类似,也是分为接口的声明和接口体,其中接口体由变量定义和方法定义两部分组成,定义接口的基本语法如下:
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 变量;
[public] [abstract] 方法;
}
修饰符:可选参数,用于指定接口的访问权限,可选值为public。如果省略则使用默认的访问权限。
接口名:必选参数,用于指定接口的名称,接口名必须是合法的Java标识符。一般情况下,要求首字母大写。
extends父接口名列表:可选参数,用于指定要定义的接口继承于哪个父接口。当使用extends关键字时,父接口名为必选参数。
方法:接口中的方法只有定义而没有被实现。
注意:接口名一般都有一个不成文的规定,即第一个字母为I。
例:
public interface IJiSuan {
public void QiuMianJi();
public void QiuZhouChang();
}
public interface IXingZhuang {
public void Hua();
}
public abstract class SiBianXing implements IJiSuan, IXingZhuang {
public void Hua(){
System.out.println("正在画一个四边形");
}
}
public class JuXing extends SiBianXing {
private int a;
private int b;
public JuXing(int a,int b){
this.a = a;
this.b = b;
}
@Override
public void QiuMianJi() {
double s = a*b;
System.out.println(s);
} @Override
public void QiuZhouChang() {
double c = a+b+a+b;
System.out.println(c);; } public void Hua(){
System.out.println("正在画一个矩型");
}
}
可以对比看出
接口用关键字interface声明。
接口的地位等同于class,接口中的所有方法都是抽象方法。
接口中在定义方法的时候,可以使用abstract关键字,也可以省略abstract关键字,(大多数时候都是省略的),方法仍是抽象的,不能有实现的花括号。
接口和抽象类的功能类似,接口也不能实例化,可以将接口看作是一种特殊的抽象类(全是抽象方法)。
接口的多态用法和抽象类也类似,接口类型的引用可以指向实现了这个接口的类的对象。
提到接口,就会联想到抽象,此时大家都会感觉接口和抽象很相似,那么他们有什么区别?
1.接口本身就是抽象的,所以他的方法必须全部都是抽象的方法,但是抽象类中的方法可以是抽象的,也可以是具体的,详见前一篇内容对抽象类的解释。
2.一个类可以实现接口,(类似于父子类之中用extends继承)采用关键字implement。大家都知道Java是单继承的,但是一个类可以实现多个接口,如上文中写的SiBianXing就实现了IJiSuan, IXingZhuang两个接口。
3.如果一个类实现了一个接口或者多个接口,如果这个类是抽象类,那么这个类就不用实现接口的全部内容,如上例中SiBianXing定义的就是一个abstract抽象类,所以不用实现IJiSuan, IXingZhuang两个接口中所有的内容。
4.同理于3,如果一个类实现了一个接口或者多个接口,如果这个类不是抽象类,是一个具体类的话,那么这个类就必须实现接口的全部内容,如上例中的JuXing,虽然JuXing是继承的SiBianXing,但是SiBianXing是一个抽象类,并没有实现所有接口的内容,而且JuXing没有定义abstract,是一个具体类,那么JuXing就必须把IJiSuan, IXingZhuang两个接口中所有的内容全部实现,也就是如上例中所写。
Java接口总结的更多相关文章
-
java接口调用——webservice就是一个RPC而已
很多新手一听到接口就蒙逼,不知道接口是什么!其实接口就是RPC,通过远程访问别的程序提供的方法,然后获得该方法执行的接口,而不需要在本地执行该方法.就是本地方法调用的升级版而已,我明天会上一篇如何通过 ...
-
java 接口的作用和好处
1.java 接口的作用 http://blog.csdn.net/hack_bug/article/details/7634737 2.一位Java大牛的回答 很多JAVA初级程序员对于接口存在的意 ...
-
java接口
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
-
java接口的嵌套
java接口 1.接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值 2.接口中的方法默认都是 public abstract ...
-
java 接口和抽象类的区别
java 接口和抽象类的区别抽象类:1.含有抽象方法的类一定为抽象类,反过来抽象类,不一定含有抽象方法:2.抽象类必须用abstract来进行定义,抽象方法也必须用abstract来进行定义:3.抽象 ...
-
java 接口(上)
1.接口中的方法都是抽象方法.而普通的抽象类里面不一定都是抽象方法.抽象类中必须有抽象方法,同时也可以有非抽象方法.继承抽象父类的子类中,如果依然有抽象方法,那么这个子类也是抽象类.即只要类中有抽象方 ...
-
java接口和抽象类
关于接口 1.创建一个接口,需要使用interface关键字. 2.实现一个接口,需要使用implements关键字. 3.接口的成员属性都是静态常量(默认public static final). ...
-
python面向对象进阶 反射 单例模式 以及python实现类似java接口功能
本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和特性. 注:所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存 ...
-
初探设计:Java接口和抽象类何时用?怎么用?
今天犯了个错: “接口变动,伤筋动骨,除非你确定只有你一个人在用”.哪怕只是throw了一个新的Exception.哈哈,这是我犯的错误. 一.接口和抽象类 类,即一个对象. 先抽象类,就是抽象出类的 ...
-
OpenCV4Android开发之旅(一)----OpenCV2.4简介及 app通过Java接口调用OpenCV的示例
转自: http://blog.csdn.net/yanzi1225627/article/details/16917961 开发环境:windows+ADT Bundle+CDT+OpenCV-2 ...
随机推荐
-
wordpress4.0.1源码学习和摘录--项目设置
1.静态变量日期 define( 'MINUTE_IN_SECONDS', 60 ); define( 'HOUR_IN_SECONDS', 60 * MINUTE_IN_SECONDS ); def ...
-
使用Cordova框架把Webapp封装成Hybrid App实践——Android篇
公司没有IOS和没有安卓开发人员,前端后端都是需要自己玩前几天技术经理说有一个需求要把webapp封装成Hybrid App,现已完成.记录一下从中遇到的问题和需要用到的开发环境的配置 将Webapp ...
-
BZOJ3402: [Usaco2009 Open]Hide and Seek 捉迷藏
3402: [Usaco2009 Open]Hide and Seek 捉迷藏 Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 51 Solved: 4 ...
-
linux搭建php
http://www.cnblogs.com/wubaiqing/archive/2011/11/08/2241195.html 四,启动php-fpm & Nginx /usr/local/ ...
-
MEF初体验之八:过滤目录
当在使用子容器的时候,基于某些具体标准来过滤目录可能是重要的.例如,基于部件的创建策略来过滤是很常见的.下面的代码片段演示了如何构建这种特别方法: var catalog = new Assembly ...
-
【for陷阱】遍历的同时删除元素
今晚,哦不,是昨晚了,想删除空行时,给for语句和列表坑得好惨!!! 一般来说,删除字符串的空行有以下几种常见的方法~(然而我竟然想不出来) 假设我们要把下面的字符串之间的空行给去掉 # coding ...
-
Java回调机制解读
模块间调用 在一个应用系统中,无论使用何种语言开发,必然存在模块之间的调用,调用的方式分为几种: (1)同步调用 同步调用是最基本并且最简单的一种调用方式,类A的方法a()调用类B的方法b(),一直等 ...
-
[编织消息框架][设计协议]优化long,int转换
理论部分 一个long占8byte,大多数应用业数值不超过int每次传输多4byte会很浪费 有没有什么办法可以压缩long或int呢? 答案是有的,原理好简单,如果数值不超过int.max_valu ...
-
PLSQL_R12 MOAC多组织的四个应用(案例)
一.摘要 R12 Form 或者其他二次开发时,很多情况下会涉及R12 MOAC多组织开发,以下介绍了4个常见的应用,如有遗漏还请学友继续补充 1. 开发时打开Form自动弹出组织选择实现方式(增加C ...
-
CKEditor上传视频(java)
CKEditor上传视频 CKEditor批量上传图片flvplayer.swf播放器CKEditor整合包(v4.6.1) ------------------------------------ ...