接口
接口
class 类 extends 继承
interface 接口 implements 实现
特殊的抽象类
是功能的集合(一般指抽象方法)
优点:
1.接口可以多实现,类只能单继承
2.提高代码的复用性
3.解耦
4.定义开发规范
定义:
jdk1.7及之前版本:
静态常量: public static final 数据类型 = 值;
修饰符默认,可以选择性的省略
调用: 接口名|实现类类名|实现 类对象.静态常量名
抽象方法: public abstract 返回值类型|void 方法名();
修饰符默认,可以选择性的省略
调用: 实现类对象.方法名
jdk1.8及之前版本:
静态方法: 只能通过接口名调用
默认方法: 通过实现类对象使用
注意:
1.接口不能实例化
2.使用接口,需要通过子类实现,实现使用implements关键字
3.作用于继承很像,实现了接口,就有了接口中定义的规范,但是功能需要自己实现
4.
类与接口: 只能是类实现接口,但是可以多实现
类与类: 只能单继承
接口与接口: 多继承
5.避免 一个类实现的多个接口中存在方法签名相同的方法
public interface InterfaceDemo01 {
int A=5; //静态常量
void test(); //抽象方法
String test2(int i);
static void testStatic() { //静态方法
System.out.println("接口中的静态方法");
}
default void testDefault(){ //默认方法
System.out.println("接口中的默认方法");
}
}
interface A{
void aaa();
}
interface B{
void bbb();
}
interface C extends A,B{}
class Demo implements C{
@Override
public void aaa() { // TODO Auto-generated method stub
}
@Override
public void bbb() { // TODO Auto-generated method stub
}
}
接口实现类
public class Impl02 extends Object implements InterfaceDemo01{
@Override
public void test() {
System.out.println("测试 抽象方法重写1");
}
@Override
public String test2(int i) {
return "测试 抽象方法重写"+i;
}
}
测试类
public class Test {
public static void main(String[] args) {
//InterfaceDemo01.A = 10;
System.out.println(InterfaceDemo01.A);
//new InterfaceDemo01(); 接口不能实例化
InterfaceDemo01.testStatic();
//实现类
Impl02 im=new Impl02();
System.out.println(im.A);
System.out.println(Impl02.A);
im.test();
im.testDefault();
System.out.println(im.test2(2));
}
}