java接口学习

来源:互联网 发布:matlab 矩阵关联分析 编辑:程序博客网 时间:2024/06/05 19:09
  1. 什么是接口
    接口是一种特殊的抽象类,接口只提供方法的原形,而没有具体的方法实现。在接口中只包含抽象方法和常量,不能有变量、初始化块和构造方法。就好比模型手机和实际手机,大小和外观都一样。而模型只是一个空壳,并不能使用,如果想它实现实际手机的功能,还需要往里面安装一系列的功能配件。
    接口例子:
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