一、接口
就是一组规范,标准。
接口是一组对类功能需求的统一描述。
这些类要遵守接口中规定的功能需求。
接口可以看作是特殊的抽象类。
二、 接口如何定义:
public interface 接口名[与类名命名规则相同]
{
//public static final 修饰的常量----常量
//public abstract修饰的方法--------抽象方法
}
三、接口使用(常量和抽象方法)
• 接口无法创建实例。使用接口和使用抽象类一样。由子类实现(用implements关键字)接口,声明接口,指向创建的子类对象。
public class A implements IA
{
//重写接口所有的方法
//如果子类中没有全部实现接口中的方法,则该类必须声明为abstract类
//接口中的方法可以不带public,但子类中重写的方法必须有public
}
//Test类中调用
IA a = new A();
• 在实际编程中,面向接口编程比较常见。
四、接口的特性:
1、接口使用关键字interface定义;接口不是类,但在用法及命名上,和类相似。
2、接口中,所有的方法都是public abstract修饰的抽象方法;所有的属性都是public static final修饰的静态常量。所以,在接口中,定义常量和方法时,相同的修饰符可省略。
3、 类通过implements实现接口。一个类要么全部实现接口中所有的抽象方法;要么该类是抽象类。在重写接口中的方法时,public不可省略。
4、接口不可以用new来实例化,但可以声明一个接口,引用其实现类对象。
5、一个类只能继承一个类,但可以实现多个接口,多个接口以,分隔。
public class A extends B implements IA, IB, IC….{}。也就是说Java中可以通过接口间接的实现多继承。
6、类与类之间是单继承,使用关键字extends;接口与接口之间,也是继承,使用extends,且接口与接口可以直接实现多继承;类与接口之间,是实现,使用implements,一个类可以实现多个接口.
可以通过代码来检验一下
<pre name="code" class="java">package com.jcxy.demo06;
/**
*
* 接口的定义用interface关键字
* 接口与接口之间可以实现多继承
* @author Mr Wang
* @version [V1.00, 2015-12-7]
* @see [相关类/方法]
* @since V1.00
*/
public interface IA extends IB,IC
{
//所有的属性都是public static final修饰的静态常量
//以下写法都正确,如果没有写全是因为eclipse会自动补全
public static final int age = 10;
public static int sno = 5;
public final int a = 1;
static int b = 2;
final int c = 3;
int d = 4;
//此种写法错误,只能public修饰
// private int e = 6;
// protected int f = 7;
//方法的定义只能为public abstract修饰
public abstract void show();
public abstract int show1(int i);
//默认为public abstract修饰
void draw();
}
一个类可以实现多个接口
package com.jcxy.demo06;
/**
*
* 一个类只能继承一个类,但可以实现多个接口,多个接口以,分隔。
* public class A extends B implements IA, IB, IC….{}
* 必须要继承在前,实现在后,否则报错
* @author Mr Wang
* @version [V1.00, 2015-12-7]
* @see [相关类/方法]
* @since V1.00
*/
public abstract class A extends FA implements IA,IB,IC
{
//一个类实现接口中的部分方法时,该类必须用abstract修饰
public abstract void show();
public int show1(int i)
{
// TODO Auto-generated method stub
return 0;
}
//重写的方法中,public关键字不能省略,否则报错
public void draw()
{
// TODO Auto-generated method stub
}
}
注意:
接口不是类,但在用法上和类相似。
1、一个.java文件中,只能有一个public修饰的接口或类。且文件名与接口名或类名相同
2、类与类只有继承且只能继承一个类。类与接口实现,类可以实现多个接口。接口与接口可以继承,可以继承多个接口。