Questão de treinamento [Para iniciantes] - Abrange: OO, Static, Super, sobrescrita

Vai ser bom para vocês entenderem, métodos e chamadas “static’s”

[code]public class Pessoa {
private static String nome;

/** Creates a new instance of Pessoa */
public Pessoa(String nome) {
  this.setNome(nome);
}

public static void setNome(String vNome) {
    nome = vNome;
}
public String getNome() {
    return nome;
}

//main

public static void main(String []a) {
Pessoa f = new Fisica();
Pessoa j = new Juridica();
System.out.println(f.getNome());
}
}

class Fisica extends Pessoa {
public Fisica() {
super(“Fisica Da Silva”);
}
public String getNome() {
return super.getNome();
}
}

class Juridica extends Pessoa {
public Juridica() {
super(“Juridica LTDA”);
}
public String getNome() {
return “Juridica&Cia”;
}
}[/code]

Pergunto:
O que irá imprimir? PQ?

a) Fisica Da Silva
b) Juridica LTDA
c) Juridica&Cia

Claro, que se vocês compilarem perde a graça.

:thumbup:

public static void main(String []a) { Pessoa f = new Fisica(); //Muda o Objeto Pessoa com o nome "Fisica da Silva" Pessoa j = new Juridica();//Muda o Objeto Pessoa com o nome "Juridica LTDA" System.out.println(f.getNome());//Pede para imprimir o nome do Objeto f, mas com o nome static e como foi modificado para Juridica LTDA antes de chamar o System.out vai imprimir "Juridica LTDA" } }

Eu acho^^
e pra imprimir Fisica da Silva teriamos que criar o main assim

public static void main(String []a) { Pessoa f = new Fisica(); System.out.println(f.getNome()); Pessoa j = new Juridica(); }
Correto???

Bom menino, correto.

Outra questão;

E para que a impressão seja: Juridica&Cia ?

Concerteza não é o unico jeito mas é como eu sei^^

public static void main(String []a) { Pessoa f = new Fisica(); Pessoa j = new Juridica(); Pessoa JA = new Juridica();//Criar uma nova Pessoa Juridica System.out.println(JA.getNome());//Como a pessoa é Juridica posso chamar o getNome() dela que vai retornar "Juridica&Cia }

Isso mesmo??

:thumbup: