java接口学习
来源:互联网 发布:matlab 矩阵关联分析 编辑:程序博客网 时间:2024/06/05 19:09
- 什么是接口
接口是一种特殊的抽象类,接口只提供方法的原形,而没有具体的方法实现。在接口中只包含抽象方法和常量,不能有变量、初始化块和构造方法。就好比模型手机和实际手机,大小和外观都一样。而模型只是一个空壳,并不能使用,如果想它实现实际手机的功能,还需要往里面安装一系列的功能配件。
接口例子:
interface student{ int CLASS_NAME = 0701; //设置班级 void learning(); //设置学习方法 void eat(); //设置吃饭方法 void sleep(); //设置睡觉方法}class StudentReal implements student { public void learning(){ System.out.println("学生正在学习"); } public void eat(){ System.out.println("学生正在吃饭"); } public void sleep(){ System.out.println("学生正在睡觉"); }}
2.接口的使用
接口不能单独实例化,必须通过接口的实现类来完成实例化。接口的实现类,必须全部实现接口中所有的方法。接口就是标准,用来隔离具体的实现。接口作为一种规范,便于扩展,利于解耦。
实现类实现接口可以通过关键字implements,格式:
[修饰符] class <类名> [extends 父类名][implements 接口名列表]{}
如上面例子中StudentReal实现接口student。
3.接口的特征
(1)java接口中的成员变量默认都是public 、static、final类型的,而对于public、static、final都可以省略。
(2)接口中的方法默认都是public、abstract类型,并且public和abstract都可以省略。接口的方法没有方法体,不能被实例化。如下例子
interface A{int COUNT = 1;void method();public abstract void method2();}
(3)接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法。变量必须初始化,并且方法必须是抽象方法,否则会报错。如下例子
public interface A{int var; //错,var必须是常量,必须显示初始化protected void method1(); //错,接口中的方法必须是public类型static void method2(); //错,接口中不能包含静态方法}
(4)接口不能有构造方法,不能被实例化。
public interface A{ public A(){}; //错,接口中不能包含构造方法。 void method();}
(5)一个接口不能实现另一个接口,但是可以继承多个其他的接口,不能继承普通类。如下:
public interface A{ void methodA();}public interface B{ void methodB();}public interface C extends A,B{ //C称为复合接口 void methodC();}
(6)实现某个java接口的时候,必须实现接口中的所有抽象方法,否则,这个类必须声明为抽象的。
(7)java中不允许创建接口的实例(实例化接口),但允许定义解耦类型的引用变量,该引用变量引用实现该接口的类的实例。如下:
public class B implements A{ A a = new B(); //引用变量a被定义为A接口类型,引用了B实例 A a = new A(); //错误,接口不允许直接实例化}
0 0
- java接口学习例子
- JAVA学习【知】接口
- java接口学习笔记
- Java接口学习笔记
- java 学习 --------接口概念
- Java 接口学习
- Java接口学习笔记
- Java接口学习笔记
- Java接口学习笔记
- Java接口学习笔记
- Java接口学习
- java 学习之接口
- Java接口学习笔记
- java接口学习例子
- Java接口学习笔记
- [java学习]接口扩展
- Java Observer接口学习
- Java学习-接口
- 5-1 最大子列和问题 (20分)
- Web开发从前端、后端、编程语言、到框架的初学指南
- table field Data types
- 关于百度天气的那个mcode参数
- iOS正则表达式之区分大小写中英文,判断输入框类型
- java接口学习
- SQL server 数据库 读写状态统计语句
- microsoft visual studio 2013 使用说明
- (22)透视投影变换
- Fragment.setArguments()的初衷。
- Kettle安装部署
- Unity3D手游开发日记(1) - 移动平台实时阴影方案
- JDK、SDK、NDK、ADT 、ANT名词解释
- 17 - 01 - 16 计算机网络(06)(虚拟局域网)