java接口和子类

时间:2015-03-28 20:59:11

标签: java oop inheritance interface

我有下一个问题。我有界面

public interface MyInterface {
    blah blah
}

我有孩子:

public class MyChild implemets MyInterface {
    blah blah
}

有什么区别:

MyChild child = new MyChild();

MyInterface child = new MyChild();

2 个答案:

答案 0 :(得分:3)

您添加的代码段是 -

MyChild child = new MyChild();  

MyInterface child = new MyChild();  

在第一种情况下,child只能包含MyChild类的对象。但在第二种情况下child(其中child是MyInterface)可以包含实现MyInterface的那些类的所有对象。在这里,您可以获得多态性的优势。

答案 1 :(得分:1)

当你这样做时:

MyInterface child = new MyChild();

你正在进行所谓的"编码到接口"它允许您遵守开放封闭原则:打开扩展但关闭以进行修改。这允许您利用动态多态性。