java如何访问接口
访问接口的方法
在Java中访问接口通常涉及两种场景:实现接口的类调用接口方法,或通过反射等方式动态调用接口方法。以下是具体实现方式:
实现接口并调用方法
定义接口后,通过类实现接口并重写方法,通过实例化类对象调用接口方法:
public interface MyInterface {
void doSomething();
}
public class MyClass implements MyInterface {
@Override
public void doSomething() {
System.out.println("实现接口方法");
}
}
// 调用示例
MyInterface obj = new MyClass();
obj.doSomething();
匿名内部类实现接口
适用于临时实现接口的场景:
MyInterface obj = new MyInterface() {
@Override
public void doSomething() {
System.out.println("匿名内部类实现");
}
};
obj.doSomething();
Lambda表达式实现接口
仅适用于函数式接口(单一抽象方法):
@FunctionalInterface
public interface SimpleInterface {
void execute();
}
// Lambda调用
SimpleInterface si = () -> System.out.println("Lambda实现");
si.execute();
反射调用接口方法
通过反射动态调用接口实现类的方法:
Class<?> clazz = Class.forName("com.example.MyClass");
MyInterface instance = (MyInterface) clazz.newInstance();
Method method = clazz.getMethod("doSomething");
method.invoke(instance);
默认方法和静态方法
Java 8+支持接口包含默认实现和静态方法:
public interface AdvancedInterface {
default void defaultMethod() {
System.out.println("默认方法实现");
}
static void staticMethod() {
System.out.println("静态方法");
}
}
// 调用示例
AdvancedInterface impl = new AdvancedInterface() {};
impl.defaultMethod();
AdvancedInterface.staticMethod();
注意事项
- 接口变量默认是
public static final - 实现类必须重写所有抽象方法(除非是抽象类)
- 通过接口类型引用可以降低代码耦合度
- 动态代理常用于框架级的接口方法调用封装







