接口和之前我们学过的类一样,也是一种数据类型,它同样是我们引用类型的一种,接口从功能的角度讲与我们的抽象类有些类似,都是抽象出一个或多个需要实现的功能。但是相较于抽象类来说,接口更像是一套规则和标准。
概念和理解有些绕口,跳过并带着思考看下面的讲解:
interface 接口名 { // 代码实现... }
interface 关键字来定义接口implements 让子类实现接口
publicpublic static fianlpublic abstractpublic static void sayHi() {}public default void sayHello() {}// 接口
public interface Inter {
}
// 实现类
public class InterImpl implements Inter{
}

案例一:

public interface Inter {
int num1; // 报错,接口中的变量都是常量(静态),所以必须初始化
int num2 = 5;
}
案例二:

public interface Inter {
// int num1; // 接口中的变量都是常量(静态),所以必须初始化
int num2 = 5;
}
public class InterDemo {
public static void main(String[] args) {
// 接口中的变量都是常量(静态),所以不能改变
Inter.num2 = 10; // 报错
// 接口中的变量都是常量(静态),所以通过类名点调用
System.out.println(Inter.num2);
}
}
前提: 需要将 IDEA 项目的语言等级调整至JDK7及以下

public interface Inter {
void say() {} // 报错,JDK7以前接口中的方法都是抽象方法,没有方法体
void eat();
}
public interface Inter {
void say();
default void sayHi(){
}
static void sayHello() {
}
}

public interface Inter {
Inter(){} // 报错,接口中没有构造方法
}

public class InterImpl implements Inter1,Inter2{ }
public interface Inter1 { }
public interface Inter2 { }

public interface Inter extends Inter1,Inter2 { }
public interface Inter1 { }
public interface Inter2 { }
类与类的关系
class B extends A {}类和接口的关系
class A implements B,C {}接口与接口的关系
interface A extends B,C {}1.1 练习1:
public interface Inter {
int num;
}
1.2 练习2:
public interface Inter {
int num = 5;
}
public class InterDemo {
public static void main(String[] args) {
Inter inter = new Inter();
System.out.println(inter.num);
}
}
1.3 练习3:
public interface Inter {
int num = 5;
}
public class InterDemo {
public static void main(String[] args) {
Inter.num2 = 10;
}
}
1.4 练习4:
public interface Inter {
void say() { }
}
1.5 练习5:
public interface Inter {
void say();
default void sayHi(){ }
static void sayHello() { }
}
1.6 练习6:
public class InterImpl implements Inter1,implements Inter2 { }
public interface Inter1 { }
public interface Inter2 { }
1.7 练习7:
public interface Inter extends Inter1,extends Inter2 { }
public interface Inter1 { }
public interface Inter2 { }
1.8 练习8:
public class Demo implements Inter extends AbstractClass { }
public abstract class AbstractClass{ }
public interface Inter { }