Olá, Rafael. Tudo bom?
A variável contaDaGabrielaCosta aponta para um objeto do tipo ContaCorrente, ou seja, podemos atribuir nesta variável referências para objetos deste tipo. A mesma coisa com contaDaGabriela.
Quando executamos contaDaGabriela = new ContaCorrente(); estamos guardando a referência do objeto criado com new ContaCorrente() nesta variável.
No vídeo, nós criamos 2 objetos e 2 variáveis de referência. Semelhante ao código abaixo:
01 | ContaCorrente c1 = new ContaCorrente();
02 | ContaCorrente c2 = new ContaCorrente();
03 |
04 | c1.Nome = "Pedro";
05 | c2.Nome = "Eduardo";
06 | c2 = c1;
07 |
08 | Console.WriteLine(c2.Nome); //Escreve Pedro
Perceba que na linha 5 atribuímos "Eduardo" na propriedade Nome do objeto criado na linha 2. Contudo, na linha 6 nós mudamos o objeto para qual a variável c2 aponta, por isto encontramos um nome diferente na linha 8.
A atribuição da linha 6 não altera a referência da variável c1, apenas c2. Um efeito colateral deste código é que nunca mais teremos acesso ao objeto criado na linha 2, porque agora não existe nenhuma referência a ele.
Esclareci sua dúvida?
Forte abraço!