我最近参加了一次采访,在那次采访中我意识到我的编程概念并不像我想象的那么具体。
有人问我,描述一下您在以前的工作中使用多态性的时间吗?
经过一番思考,我说我们有一个记录类,每条新记录都会扩展。因此,如果我们有 AddRecord 或 RemoveRecord 或任何其他类型的记录,它们将扩展 Record。记录界面看起来像这样:
public abstract Record{
public writeLine(String line);
public getColumn(int column);
public setHeader(String header);
...
}
public AddRecord extends Record{
public writeLine(String line){
// do something
}
// etc...
}
public MakeRecord{
Record r;
public setRecord(Object s){
if(s instanceof Record){
r = s;
}
}
public void printNewRecord(){
while(thingsToWrite){
r.writeLine(something);
}
}
}
我只是简写了它,所以请不要挑它。
我告诉他们这是使用多态性,因为无论记录类型如何,都可以在不知道它是什么类型的记录的情况下编写它。这很有价值,因为我们正在编写需要正确填充的文件,无论是零填充还是用空格填充等......
如果这不是多态性,请告诉我如何将我的示例更改为使用多态性的东西。