public interface MyInterface {
void doSomething();
public class ImplementationA implements MyInterface {
@Override
public void doSomething() {
System.out.println("Implementation A");
public class ImplementationB implements MyInterface {
@Override
public void doSomething() {
System.out.println("Implementation B");
public enum MyFactory {
IMPLEMENTATION_A {
@Override
public MyInterface create() {
return new ImplementationA();
IMPLEMENTATION_B {
@Override
public MyInterface create() {
return new ImplementationB();
public abstract MyInterface create();
public class Main {
public static void main(String[] args) {
MyInterface implementationA = MyFactory.IMPLEMENTATION_A.create();
implementationA.doSomething(); // 输出:Implementation A
MyInterface implementationB = MyFactory.IMPLEMENTATION_B.create();
implementationB.doSomething(); // 输出:Implementation B
在这个示例中,枚举 MyFactory 表示工厂,每个枚举常量代表一个具体的实现类。每个枚举常量都实现了抽象方法 create(),该方法用于创建对应的实现类对象。在 Main 类中,通过枚举常量调用 create() 方法来创建具体的实现类对象,并调用接口方法
public interface TransCallbackInterface {
public void callback(String taskId, int code, String fixed);
@Component
public class T...
一个接口多个实现类,如何指定特定实现类进行调用示例解决方法
在写程序的时候经常会遇到 写一个接口有多个实现类,那么在调用的时候是如何去确定调用的是哪个实现类呢?接下来将为你介绍几种方式:
public interface Animal {
//动物的叫声
public void call();
//动物吃的东西
public void eat();
实现类1
@Service("dogImpl")
public class Dog implements An
一般我们用第二种方式有一个好处,如果以后要改动,那么只需要修改其引用的实例,改动较少!
举个例子:A接口,A1,A2,A3实现A接口,有一个eat方法,A1:吃饭,A2:吃鱼,A3:吃肉
需要得到"吃肉",那么 A a = n
接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法,包含抽象方法(JDK 7及前),默认方法和静态方法(JDK 8),私有方法(JDK 9)。
接口的定义,它与定义类方式相似,但是使用 interface 关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型
引用数据类型:数组,类,接口。
接口的使用,它不能创建对象,但是可以被实现( implements ,类似于被继承)
A用户调用Aservice实现类,B用户调用Bservice实现类
1、使用switch-case
public static Person printPerson(int kind) {
Person p = null;
switch (kind) {
case FIRST: p = new A("人1");break;
case SECOND...