下面編碼的多態性是否有區別?基本上,方法調用的綁定有區別嗎?使用接口和類的多態性
多態性類型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