Как мне создать подкласс, который принимает разные параметры для одного и того же имени функции?

Итак, я создал этот простой интерфейс:

package{
    public interface GraphADT{
        function addNode(newNode:Node):Boolean;     
    }
}

Я также создал простой класс Graph:

package{

    public class Graph implements GraphADT{

        protected var nodes:LinkedList;

        public function Graph(){
            nodes = new LinkedList();
        }

        public function addNode (newNode:Node):Boolean{
            return nodes.add(newNode);
        }
}

last, но не по крайней мере, я создал еще один простой класс AdjacancyListGraph:

package{
    public class AdjacancyListGraph extends Graph{

        public function AdjacancyListGraph(){
            super();
        }

        override public function addNode(newNode:AwareNode):Boolean{
            return nodes.add(newNode);
        }
}

Такая настройка вызывает у меня ошибки, а именно:

1144: Interface method addNode in namespace GraphADT is implemented with an incompatible signature in class AdjacancyListGraph.

При ближайшем рассмотрении стало очевидно, что AS3 не нравятся различные типы параметров из разных классов Graph newNode: Node из Graph и newNode: AwareNode из AdjacancyListGraph

Однако я не понимаю, почему это может быть проблемой, поскольку AwareNode является подклассом ] Узел .

Могу ли я заставить свой код работать, сохраняя при этом целостность кода?

0
задан vvMINOvv 1 November 2011 в 00:42
поделиться