接口 interface (协议)
比抽象更抽象 -因为它比抽象类更纯粹
-
接口中只能有 抽象方法 和 静态常量
-
接口不是类 =》 不能创建对象
接口不能实例化对象,但是可以做引用类型
接口 引用对象 = new 实现类();
- 实现关键字:implements
接口用来定义方法:
-
类来实现接口中的方法
public class 类名 implements 接口{ }
-
一个类可以同时实现多个接口
public class 类名 implements 接口1,接口2..{ }
-
接口可以继承接口,而且可以多个继承
public interface 接口1 extends 接口2,接口3{
}
测试代码
package com.zking.testJK;
/**
* 接口可以继承,且可以多个继承
* @author Administrator
*
*/
public interface DuoJK extends IA,IB{
//方法
public void c();
}
代码案例
package com.zking.testJK;
/**
* 接口 A
* @author Administrator
*
*/
public interface IA {
int A = 1;//默认 静态 常量
//常量都要大写
static final int B = 1;
public void a();//默认 抽象方法
public abstract void aa();
}
package com.zking.testJK;
/**
* 测试 接口 A 的类
* @author Administrator
*
*/
public class Imp_A implements IA{//用关键字实现抽象方法
@Override
public void a() {
// TODO Auto-generated method stub
System.out.println("实现 a 方法");
}
@Override
public void aa() {
// TODO Auto-generated method stub
System.out.println("实现 aa 方法");
}
}
package com.zking.testJK;
/**
* 接口 B
* @author Administrator
*
*/
public interface IB {
public abstract void b();
}
package com.zking.testJK;
/**
* 测试 接口 B 的类
* @author Administrator
*
*/
public class Imp_B implements IB{
@Override
public void b() {
// TODO Auto-generated method stub
System.out.println("实现 b 方法");
}
}
package com.zking.testJK;
/**
* 测试多个接口
* @author Administrator
*
*/
public class Imp_All implements IA,IB,DuoJK{
@Override
public void b() {//IB
// TODO Auto-generated method stub
}
@Override
public void a() {//IA
// TODO Auto-generated method stub
}
@Override
public void aa() {//IA
// TODO Auto-generated method stub
}
@Override
public void c() {//DuoJK
// TODO Auto-generated method stub
}
}