Olá, Matheus. Não são não.
Pseudo-classes selecionam elementos regulares, mas sob certas condições, como quando sua posição em relação a irmãos ou quando estão sob um estado específico. Aqui está uma lista de pseudo-classes em CSS3:
// Pseudoclasses dinâmicas
:link
:visited
:hover
:active
:focus
//Pseudoclasses estruturais
:first-child
:nth-child(n)
:nth-last-child(n)
:nth-of-type(n)
:nth-last-of-type(n)
:last-child
:first-of-type
:last-of-type
:only-child
:only-of-type
:root
:empty
//Outras pseudoclasses
:enabled
:disabled
:checked
:not(x)
:target
:lang(language)
Já os Pseudo-elementos criam efetivamente novos elementos que não são especificados na marcação do documento e podem ser manipulados como um elemento regular. Isso apresenta enormes benefícios para criar efeitos interessantes com marcação mínima, também ajudando significativamente a manter a apresentação do documento fora do HTML e no CSS onde ele pertence. Aqui está uma lista de pseudo-elementos em CSS3:
::before
::after
::first-letter
::first-line
Espero que tenha compreendido.