E um metodo statico pode acessar apenas atributos e metodos estaticos porque o static void x da classe A conseguiu chamar o metodo (Y) da classe B que nao é estatico?
E um metodo statico pode acessar apenas atributos e metodos estaticos porque o static void x da classe A conseguiu chamar o metodo (Y) da classe B que nao é estatico?
Pois foi feito o new
! Realmente é uma pegadinha.
Repare que se fosse assim:
static void x() {
B.y();
}
não compilaria. pois y
é um método de instância de B
. Precisa de uma instância. Mas no exercício ele deu new
. O que seria equivalente a:
static void x() {
B objeto = new B();
objeto.y();
}
objeto é uma referência a uma instância de B, então pode ser invocado o método y.
Fazer new B().y()
é só uma forma mais enxuta de fazer a mesma coisa.
Muito bom, realmente essa prova é cheia de pegadinhas. Obrigado