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?
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é.