Java接口总结
接口的定义:
使用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 ...
随机推荐
- 自定义RatingBar的一个问题(只显示显示一个星星)
问题一: 在自定义RatingBar时在设置了numStars属性后只显示一张图(一个星星) 解答: 注意准备的替换图片千万不要使用.9PNG格式的图片,要不之后显示一张图(一个星星)! 问题二: 设 ...
- iOS 真机测试时报错:Provisioning profile "iOS Team Provisioning Profile: XXX” doesn't include the currently selected device “XXX”.
这几天因工作需要,去给客户演示iOS项目打包的过程.之前演示都是顺利的,但后来客户自己操作时打电话说遇到了问题,出现报错. 就过去看了一下,发现一个很陌生的错误提示: The operation co ...
- 通用js函数集锦<来源于网络> 【二】
通用js函数集锦<来源于网络> [二] 1.数组方法集2.cookie方法集3.url方法集4.正则表达式方法集5.字符串方法集6.加密方法集7.日期方法集8.浏览器检测方法集9.json ...
- Programming Language A 学习笔记(二)
1. 语法糖--元组的"名称引用"与"位置引用": (e1,...,en) <=> {1=e1,...,n=en} 类型:t1 * - * tn & ...
- 前端工具 & git笔记
git diff (working dir to INDEX ) git diff --cached (INDEX to HEAD) git diff HEAD (working dir t ...
- 第二天ci项目规划 前后台分离
第二天ci项目规划 前后台分离 1/31/2016 2:40:26 PM 前后台 表面上看前后台不同网站 但是数据是他们之间的联系要完成结构完整项目 设计好前后台 基于mvc框架 前后台那些地方不同 ...
- Java: some learning note for Java calssloader and Servlet
1. Java Classloader 链接: https://en.wikipedia.org/wiki/Java_Classloader 摘要: The Java Classloader is a ...
- bzoj 3202: [Sdoi2013]项链
Description 项链是人体的装饰品之一,是最早出现的首饰.项链除了具有装饰功能之外,有些项 链还具有特殊显示作用,如天主教徒的十字架链和佛教徒的念珠. 从古至今人们为了美化人体本身,也美 化环 ...
- python中的函数
Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...
- 从零开始山寨Caffe·陆:IO系统(一)
你说你学过操作系统这门课?写个无Bug的生产者和消费者模型试试! ——你真的学好了操作系统这门课嘛? 在第壹章,展示过这样图: 其中,左半部分构成了新版Caffe最恼人.最庞大的IO系统. 也是历来最 ...