接口(interface)
实现接口(implements)
接口的特点:
1)接口不能实例化,接口中也不能有构造方法.
2)接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但是接口不能继承类.
3)接口中所有方法都是抽象方法.接口的方法都会自动用public abstract修饰,即接口中只有全局抽象方法.
4)接口中可以定义常量,不能定义变量.
5)接口中的属性都会用public static final修饰,即接口中的属性都是全局静态常量.接口中的常量必须在定义时指定初始值.
Eg:
public static final int num=3;
int num=3;//在接口中,这二种定义语句效果完全相同
接口表示一种能力
一个类实现了某个接口,就表示这个类具备了某种能力.一个类可以实现多个接口
/**
* 门
* @author Administrator
*
*/
public abstract class Door {
public abstract void open(); //开
public abstract void close(); //关
}
/**
* 锁,接口
* @author Administrator
*
*/
public interface Lock {
void lockup(); //关锁
void openLock();//开锁
}
/**
* 防盗门类
* @author Administrator
*
*/
public class TheftproofDoor extends Door implements Lock {
@Override
public void lockup() {
System.out.println("插入钥匙,向左转三圈,锁上了,拔出钥匙");
}
@Override
public void openLock() {
System.out.println("插入钥匙,向右转三圈,锁打开了,拔出钥匙");
}
@Override
public void open() {
System.out.println("用力推,门打开了");
}
@Override
public void close() {
System.out.println("轻轻拉门,门关上了");
}
}
/**
* 测试类
* @author Administrator
*
*/
public class Test {
public static void main(String[] args) {
/**
* 创建具体防盗门对象
*/
TheftproofDoor tfd=new TheftproofDoor();
tfd.close(); //关门
tfd.lockup(); //上锁
tfd.openLock(); //开锁
tfd.open(); //开门
}
}
接口表示一种约定
面向接口编程:
程序设计时:
关心实现类有何能力,而不关心实现的细节.
面向接口的约定而不考虑接口的具体实现.
接口的定义语法:
[访问修饰符]interface 接口名 extends 父接口1,父接口2,....{
//常量定义
//方法定义
}
实现接口的语法:
class 类名 extends 父类名 implements 接口1,接口2,....{
//类成员
}