Java 使用类名和接口名调用接口类对象之间的区别
请看下面的例子Java 使用类名和接口名调用接口类对象之间的区别,java,design-patterns,interface,Java,Design Patterns,Interface,请看下面的例子 public interface Testing { public void go(); } public class TestingImplements implements Testing { @Override public void go() { } } public class Main { public static void main(String[] args) { System.out.printl
public interface Testing {
public void go();
}
public class TestingImplements implements Testing {
@Override
public void go() {
}
}
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
Testing throughInterface = new TestingImplements();
TestingImplements directly = new TestingImplements();
}
}
我的问题是,,
直接使用throughInterface有哪些优点和缺点。稍微解释一下会很有帮助的
Testing throughInterface = new TestingImplements();
而不是
TestingImplements directly = new TestingImplements();
接口的目的是实现多重继承,但在您的情况下,如果您想更改另一个类中方法的行为,那么这将非常有用 让我们来定义这两种不同方法的含义:
testingthroughinterface=newtestingimplements()时代码>,您正在编程到一个接口
TestingImplements directly=newtestingimplements()时代码>,您正在对实现进行编程
testingthroughinterface=newtestingimplementstwo()代码>并且不需要更改代码的其余部分,因为您知道TestingImplementsTwo
至少包含测试中存在的那些方法
这不是一个奇怪的方式,这是首选的方式。您展示的两个示例是相同的(复制+粘贴失败?),感谢您的回答,但稍微细化一下会很好。伙计,您能不能将答案扩展到,使用2)比1)的优点,这样我就可以了解全部情况。使用2比1没有好处。您应该始终使用1。