我有下一个问题。我有界面
public interface MyInterface {
blah blah
}
我有孩子:
public class MyChild implemets MyInterface {
blah blah
}
有什么区别:
MyChild child = new MyChild();
和
MyInterface child = new MyChild();
答案 0 :(得分:3)
您添加的代码段是 -
MyChild child = new MyChild();
和
MyInterface child = new MyChild();
在第一种情况下,child
只能包含MyChild
类的对象。但在第二种情况下child
(其中child是MyInterface
)可以包含实现MyInterface
的那些类的所有对象。在这里,您可以获得多态性的优势。
答案 1 :(得分:1)
当你这样做时:
MyInterface child = new MyChild();
你正在进行所谓的"编码到接口"它允许您遵守开放封闭原则:打开扩展但关闭以进行修改。这允许您利用动态多态性。