variáveis duplicas versus herança, a teoria disso?

4 respostas
ribclauport

Bom, é o seguinte fazendo o mock me deparei com a seguinte questão:

What will be the result of attempting to compile and run class B?

class A { final int fi = 10; } public class B extends A { int fi = 15; public static void main(String[] args) { B b = new B(); b.fi = 20; System.out.println(b.fi); System.out.println( ( (A) b ).fi ); } }

Marquei que isso não compilava pensei que ia dar variável duplicada, mas lógico que ja sabem que não dá né…
Nunca a gente trabalhando fica fazendo essas bizarrices né, ae na certificação se rala…bom achei a parte de sombeamento de variável, mas a parte de variáves… isso não. Vocês não acham isso estranho?

4 Respostas

mauricioadl

bem bizzarro isso! fez um override de variavel. tenso!

kkkk

ribclauport

Pois é, pior essa veja a diferença entre esses dois códigos:

class Pets { DOG("D"), CAT("C"), FISH("F"); static String prefix = "I am "; String name; Pets(String s) { name = prefix + s;} public String getData(){ return name; } }

enum Pets { DOG("D"), CAT("C"), FISH("F"); static String prefix = "I am "; String name; Pets(String s) { name = prefix + s;} public String getData(){ return name; } }

No caso da enum não é permitido atributos static que não seja final!
Ou seja não compila, no livro da Katy não fala disso!
Que medo!

Aleksandro

ribclauport:
Bom, é o seguinte fazendo o mock me deparei com a seguinte questão:

What will be the result of attempting to compile and run class B?

class A { final int fi = 10; } public class B extends A { int fi = 15; public static void main(String[] args) { B b = new B(); b.fi = 20; System.out.println(b.fi); System.out.println( ( (A) b ).fi ); } }

Marquei que isso não compilava pensei que ia dar variável duplicada, mas lógico que ja sabem que não dá né…
Nunca a gente trabalhando fica fazendo essas bizarrices né, ae na certificação se rala…bom achei a parte de sombeamento de variável, mas a parte de variáves… isso não. Vocês não acham isso estranho?

Afff q estranho isto hein …

ribclauport

Pois é, eu estou testando todos os códigos na ide, se eu não tivesse compilado isso não acreditaria…

Mas que bom que não sou somente eu quem acha estranho né.

Criado 19 de março de 2012
Ultima resposta 19 de mar. de 2012
Respostas 4
Participantes 3