Java技术_Java千百问(0032)_java接口到底是什么
2016-04-17 11:16
363 查看
点击进入_更多_Java千百问
抽象方法看这里:java中抽象概念如何体现的
接口的特点如下,先看与类类似的特点:
接口的写法和写一个类类似,但它们是两个不同的概念。类描述对象的属性和行为。接口仅仅定义了事物的行为,且不会具体化这个行为。
除非实现接口的是抽象类,不然接口中的所有方法必须在类(实现这个接口的类)中定义且实现。
接口同类一样,可以包含任何数量的方法。
接口同类一样,被写在同一个.java扩展名的源文件中,文件名与接口名称一致。
接口同类一样,会被编译为一个.class文件。
同类一样,需要指定包(package),来表明接口所在的目录结构。了解更多package看这里:package和import作用是什么
与类不同的几个方面:
接口不能被实例化。
接口不包含任何构造函数。
接口中的所有方法都是抽象的。
接口不包含实例字段。但可以定义常量,使用static和final关键字。
了解常量看这里:局部变量、类变量、实例变量有什么区别
类通过实现接口重写接口的方法,而不是继承。
接口可以继承另一个接口。
例子:
编写接口需要注意:
接口是隐式抽象的。声明一个接口,不需要使用abstract关键字。
接口中的每个方法也隐式抽象的。方法也不需要abstract关键字。
接口中的方法是隐式公开的,即public。
例子:
类使用implements关键字来实现一个接口。如下:
这将产生以下结果:
Mammal eats
Mammal travels
重写接口中的方法有几个规则:
接口方法抛出的异常在被实现时也需要抛出。
重写方法时,应保持接口方法的参数和返回类型一致。
一个实现类本身可以是抽象的,如果抽象类,接口方法可以不实现。
一个类只能扩展一个类,但能实现多个接口。
一个接口可以扩展另一个接口,类似于一个类可以扩展另一个类。
1、什么是接口
接口(interface)不是一个类,它是抽象方法的集合。一个类实现一个接口,从而继承和实现接口的抽象方法。抽象方法看这里:java中抽象概念如何体现的
接口的特点如下,先看与类类似的特点:
接口的写法和写一个类类似,但它们是两个不同的概念。类描述对象的属性和行为。接口仅仅定义了事物的行为,且不会具体化这个行为。
除非实现接口的是抽象类,不然接口中的所有方法必须在类(实现这个接口的类)中定义且实现。
接口同类一样,可以包含任何数量的方法。
接口同类一样,被写在同一个.java扩展名的源文件中,文件名与接口名称一致。
接口同类一样,会被编译为一个.class文件。
同类一样,需要指定包(package),来表明接口所在的目录结构。了解更多package看这里:package和import作用是什么
与类不同的几个方面:
接口不能被实例化。
接口不包含任何构造函数。
接口中的所有方法都是抽象的。
接口不包含实例字段。但可以定义常量,使用static和final关键字。
了解常量看这里:局部变量、类变量、实例变量有什么区别
类通过实现接口重写接口的方法,而不是继承。
接口可以继承另一个接口。
2、如何编写一个接口
使用interface关键字声明一个接口。例子:
/* File name : NameOfInterface.java */ import java.lang.*; //Any number of import statements public interface NameOfInterface { //Any number of final, static fields //Any number of abstract method declarations }
编写接口需要注意:
接口是隐式抽象的。声明一个接口,不需要使用abstract关键字。
接口中的每个方法也隐式抽象的。方法也不需要abstract关键字。
接口中的方法是隐式公开的,即public。
例子:
/* File name : Animal.java */ interface Animal { public void eat(); public void travel(); }
3、如何实现一个接口
当一个类实现一个接口,可以认为该类同意接受接口定义的行为。如果一个类不实现该接口的所有行为,该类必须自己声明为abstract。类使用implements关键字来实现一个接口。如下:
/* File name : MammalInt.java */ public class MammalInt implements Animal{ public void eat(){ System.out.println("Mammal eats"); } public void travel(){ System.out.println("Mammal travels"); } public int noOfLegs(){ return 0; } public static void main(String args[]){ MammalInt m = new MammalInt(); m.eat(); m.travel(); } }
这将产生以下结果:
Mammal eats
Mammal travels
重写接口中的方法有几个规则:
接口方法抛出的异常在被实现时也需要抛出。
重写方法时,应保持接口方法的参数和返回类型一致。
一个实现类本身可以是抽象的,如果抽象类,接口方法可以不实现。
一个类只能扩展一个类,但能实现多个接口。
一个接口可以扩展另一个接口,类似于一个类可以扩展另一个类。
相关文章推荐
- java base64编码和解码
- Java字符串不同创建方式的理解
- 泛型快速排序(java 语言实现)
- AVL树的java实现
- Java Web基础知识之Servlet(3):Session管理
- 快速排序(java 语言实现)
- Spring基础(一)——AOP&IoC
- 20145326 《Java程序设计》第7周学习总结
- 深入浅出Java并发包—锁机制(三)
- eclipse调试百度地图demo提示 230错误 Scode码校验失败
- 深入浅出Java并发包—读写锁ReentrantReadWriteLock原理分析(二)
- 安装eclipse的JRebel6.0.3的插件
- java基础(3)--java.lang.ClassLoader类的用法
- java冒泡排序
- 解密JVM GC
- Spring MVC整体处理流程
- 深入浅出Java并发包—锁机制(一)
- java中的缓存
- 【Java学习-J.160411.0.8】笔记7-Java第一个hello world学习
- struts2中拦截器实现的三种方式