make Element::getEdge() virtual function
support the order dependent behavior of getEdge() by override