Galera eu tenho uma variavel chamado alunos ao qual é do tipo List<>, porem recebo um construtor do tipo ArraList<>(), como isso é possível e porque fazer dessa forma?
Geralmente eu vejo isso sendo aplicado em alguns projetos e não consigo entender o porquê, e o motivo por não dar conflito. Pois são tipos diferente certo?
[codigo completo]
public class AlunoDao {
private final static List<Aluno> alunos = new ArrayList<>(); // minha dúvida
public void salva(Aluno aluno) {
alunos.add(aluno);
}
public List<Aluno> todos(){
return new ArrayList<>(alunos);
}
}
Na aula a gente cria uma variável chamada primeiraConta ao qual é uma referência da classe Conta e recebe o construtor.
Conta primeiraConta = new Conta();
Em seguida a gente cria outra variável que faz referência a classe Conta, porem recebe a variável primeiraConta.
Conta segundaConta = primeiraConta;
Isso funciona porque os tipos são os mesmos, e acaba que a segundaConta recebe todos os valores setados no atributo da primeiraConta.