下面编码的多态性是否有区别?基本上,方法调用的绑定有区别吗?使用接口和类的多态性
多态性类型1:
public interface Command
{
public void execute();
}
public class ReadCommand implements Command
{
public void execute()
{
//do reading stuff
}
}
public class WriteCommand implements Command
{
public void execute()
{
//do writing stuff
}
}
public class CommandFactory
{
public static Command getCommand(String s)
{
if(s.equals("Read"))
{
return new ReadCommand();
}
if(s.equals("Write"))
{
return new WriteCommand();
}
return null;
}
}
现在我使用命令工厂:
class A
{
public void method()
{
// do stuff
}
}
class B extends A
{
public void method()
{
// do other stuff
}
}
现在用的是
A a = new B();
a.method();
多态性类型2 I做的东西与乙
Command c = CommandFactory.getCommand("Read");
c.execute();
我的问题是:上述两种多态性是否有区别。我知道这两个都是运行时多态性的例子,但是[关于方法绑定的方面]有什么区别,或者有什么区别?
@Swaranga:鉴于这是与谷歌采访有关,我认为我最好不要评论任何进一步说实话... – 2011-03-21 12:26:41