我不明白两者之间的区别 UML类图中的UML实现和泛化箭头。在特定的代码中,我创建了一个接口:
public interface IParser {
void Parse(string[] txtFile);
void Add(List<char> gameMap);
}
我继承了它:
public class ParseExits : IParser {
public Dictionary<char, string> Dict { get; }
public List<Entity> EntityList { get; }
public ParseExits() {
Dict = new Dictionary<char, string>();
EntityList = new List<Entity>();
}
public void Parse(string[] txtFile) {
...
}
public void Add(List<char> gameMap) {
...
}
我会说这是一种实现,因为我继承了整个接口。我实现了IParser(“模板”)。泛化是使用某些接口?这是正确的区分吗?
答案 0 :(得分:0)
您可以说IParser
已实现(已实现)。泛化是不同的,并且在使用继承时发生。例如,基类“动物”和从动物继承的类:“老虎”。在这种情况下,您可以将其称为“ 是”关系。 “老虎”是“动物”。 “老虎” 由“动物”概括。
您的第二个问题更多是一个“通用的面向对象”问题。
继承与组合:通常来说,使用组合而不是继承更为健壮,而且摆脱基因并不容易。 (有关继承的Google组成)
接口与(抽象)类:阅读this StackOverflow答案