In CSS, when not venturing into descendant selectors and ids, the lower (later) line will always take precedence to the former. In your code, that means that once like is visited, hover effect will no longer work. If that is your goal, your code is ok. If not, then you should revise the code so that it uses correct order of pseudo elements:
:link
:visited
:focus
:hover
:active
Of course, if you are not using one of those, you can skip them. You can still check my above example to see how to have links that distinguish between unvisited links, visited links and both in hovering mode.