包含其他子类列表的派生类

时间:2017-01-18 14:10:15

标签: c# oop inheritance

我有一个派生类的抽象类:

abstract class FoxObject : ICloneable
    {
        public int lineNumber;
        public string line, name;
        public FoxObject parent;
        public List<FoxObject> children;
        private Guid guid;

        protected FoxObject(int lineNumber, string line, string name, FoxObject parent, List<FoxObject> children)
        {
            this.lineNumber = lineNumber;
            this.line = line;
            this.name = name;
            this.parent = parent;
            this.children = children;
            guid = Guid.NewGuid();
        }

     //Code not relevant to this question.
    }

我从中有几个派生类(所有派生类都直接从FoxObject继承:SymbolGraphicAliasActionUpdate

每个Graphic包含List<Symbol>每个符号列表,其中包含别名,操作和更新(或三个单独的列表,这是问题的一部分)。然而,目前这些都是由父类中的List<FoxObject>处理的,因此存在高水平的多态性。

我的问题是,是否有一种方法可以在派生类中指出List<FoxObject>实际包含的内容,以节省每次必须抛出的内容?

如果没有,那么让这些List<T>具有相同名称但不同type并将其从FoxObject类中移除是否有意义?

1 个答案:

答案 0 :(得分:1)

我的回答是只使用public class MyRetryInterceptor implements MethodInterceptor { @Override public Object invoke(MethodInvocation invocation) throws Throwable { Method m = invocation.getMethod(); Object result = invocation.proceed(); return result; } } 关键字,只需覆盖基类的成员字段:

new