Olá Fabricio, tudo bem?
Então, o else if pode ser traduzido literalmente como um "senão se", ou seja, ele exige que você tenha uma condição anterior, leia-se:
Se (usuario == "Flávio") Faça alguma coisa;
Se não, Se (usuario == Nico) faça tal coisa.
Ou seja, se a primeira condição foi Verdadeira, ele não irá testar a segunda, do mesmo modo que, se a primeira for false, a segunda poderá ser testada. o else if é uma forma de "conectar" um if ao outro, economizando alguns passos caso uma opção exclua a outra (se o nome é X, não pode ser Y).
No teu código, foram utilizados diversos ifs, o que acontece é o seguinte:
Independentemente de a primeira condição ser verdadeira, as demais serão testadas, logo, não importa se a anterior é verdadeira ou falsa, a sua lógica será sempre testada.
o else serve como um modo "default" caso nenhuma das hipóteses sejam válidas, mas ele só pode ser vinculado a 01 if... digo,
Conforme citei anteriormente, o else if serve como uma "ligação" entre os testes... então o else pode englobar todos os ifs e else ifs...
mas com o código que apresentou no post, o seu else só estará vinculado ao último if, em que o teste do nome nico é realizado. Portanto, sempre que qualquer outro nome diferente de Nico for testado, o else entrará em ação.
Espero ter ajudado, se não ficou muito clara a explicação, pode chamar ^^.
new Saudacoes();
; )