Java接口-它们的作用是什么?

我不久前才开始学习Java。

我遇到过Interfaces我知道如何使用它,但仍然不太了解它的想法。

据我了解,interfaces通常是由类实现的,然后必须实现在接口中声明的方法。

问题是-真正的意义是什么?仅将接口中的方法实现为普通的类方法会更容易吗?使用接口的确切优势是什么?

希望有人可以简化它!:)

预先感谢!

回答:

接口允许您在运行时提供不同的实现,注入依赖项,单独的关注点,使用不同的实现进行测试。

只需将接口视为类保证实现的契约即可。实现该接口的具体类无关紧要。不知道这是否有帮助。

想出一些代码可能会有所帮助。这并不能解释界面的所有内容,请继续阅读,但我希望这可以帮助您入门。这里的重点是您可以更改实现…

package stack.overflow.example;

public interface IExampleService {

void callExpensiveService();

}

public class TestService implements IExampleService {

@Override

public void callExpensiveService() {

// This is a mock service, we run this as many

// times as we like for free to test our software

}

}

public class ExpensiveService implements IExampleService {

@Override

public void callExpensiveService() {

// This performs some really expensive service,

// Ideally this will only happen in the field

// We'd rather test as much of our software for

// free if possible.

}

}

public class Main {

/**

* @param args

*/

public static void main(String[] args) {

// In a test program I might write

IExampleService testService = new TestService();

testService.callExpensiveService();

// Alternatively, in a real program I might write

IExampleService testService = new ExpensiveService();

testService.callExpensiveService();

// The difference above, is that we can vary the concrete

// class which is instantiated. In reality we can use a

// service locator, or use dependency injection to determine

// at runtime which class to implement.

// So in the above example my testing can be done for free, but

// real world users would still be charged. Point is that the interface

// provides a contract that we know will always be fulfilled, regardless

// of the implementation.

}

}

以上是 Java接口-它们的作用是什么? 的全部内容, 来源链接: utcz.com/qa/425597.html

回到顶部