Usando Herança

Olá,
Estou tentando usar herança mas creio que esteja usando de forma errônea.
Criei uma Superclass com algumas váriaveis e estou tentando usá-las em Subclasses, o problema
é que não está lendo a segunda Subclass, quando eu compilo aparece apenas os dados da primeira.
O que estou fazendo de errado ?
Desde já, obrigado pela atenção, abraços.

public class Super {
	static String nome="", endereco="", telefone="";
	
}
class PessoaFisica extends Super {
	public static void main(String[] args) {
		nome="Fulano";
		endereco="Av. São Paulo";
		telefone="9999-9999";
		System.out.println("Nome: "+nome+"\nEndereço: "+endereco+"\nTelefone: "+telefone);
		
	  
	  
	}
	
}
class PessoaJuridica extends Super {
	public static void main(String[] args) {
		nome="Ciclano & Cia";
		endereco="Av. Rio de Janeiro";
		telefone="3333-3333";
		System.out.println("Nome: "+nome+"\nEndereço: "+endereco+"\nTelefone: "+telefone);
		
		
	}
}

cara, não manjo quase nada, mas acho que ele não mostra as informações da segunda porque quando você você executa esta chamando o main da 1º classe (java PessoaFisica), quando uma classe é executada ela só chama um main, para chamar também o da classe PessoaJuridica, você deve deixar isso explicito em PessoaFisica, basta adicionar o comando PessoaJuridica.main(null); no final do metodo main de PessoaFisica e quando executar use o comando java PessoaFisica

Acho q é isso, se eu tiver dito besteira foi mal ae…

Tudo bem mid_?

fiz o teste sobre os main aqui, e o viniciusms1 tem razao.

ele executa o primeiro main o segunda nunca vai executar. Entao pense em uma outra forma de fazer o codigo funcionar. Qualquer coisa estamos a disposicao.

Faça assim:

public class Super {     
    private String nome;   
    private String endereco;   
    private String telefone;   
  
//métodos gets   
public String getNome(){   
    return this.nome;   
}   
public String getEndereco(){   
    return this.endereco;   
}   
public String getTelefone(){   
    return this.telefone;   
}   
//métodos sets   
public void setNome(String nome){   
   this.nome = nome;   
}   
public void setEndereco(String endereco){   
    this.endereco = endereco;   
}   
public void setTelefone(String telefone){   
    this.telefone = telefone;   
}             
}     
class PessoaFisica {     
    public static void main(String[] args) {     
        Super objSuper = new Super();   
           
        objSuper.setNome("Fulano");     
        objSuper.setEndereco("Av. São Paulo");     
        objSuper.setTelefone("9999-9999");     
        System.out.println("Nome: "+objSuper.getNome()+"\nEndereço: "+objSuper.getEndereco()+"\nTelefone: "+objSuper.getTelefone());     
           
    }     
         
}     
class PessoaJuridica {     
    public static void main(String[] args) {     
        Super objSuper = new Super();   
           
        objSuper.setNome("Ciclano & Cia");     
        objSuper.setEndereco("Av. Rio de Janeiro");     
        objSuper.setTelefone("3333-3333");     
        System.out.println("Nome: "+objSuper.getNome()+"\nEndereço: "+objSuper.getEndereco()+"\nTelefone: "+objSuper.getTelefone());               
    }     
}

Assim fica mais legível…
Qualquer coisa posta de novo… Abração!

… não é uma boa prática de programação colocar várias classes num só arquivo JAVA. Procure colocar as classes filhas em arquivos separados depois instancie num arquivo assim:
Super.java

public class Super {       
    private String nome;     
    private String endereco;     
    private String telefone;     
     
//métodos gets     
public String getNome(){     
    return this.nome;     
}     
public String getEndereco(){     
    return this.endereco;     
}     
public String getTelefone(){     
    return this.telefone;     
}     
//métodos sets     
public void setNome(String nome){     
   this.nome = nome;     
}     
public void setEndereco(String endereco){     
    this.endereco = endereco;     
}     
public void setTelefone(String telefone){     
    this.telefone = telefone;     
}               
} 

PessoaFisica.java

public class PessoaFisica {       
    public static void main(String[] args) {       
        Super objSuper = new Super();     
             
        objSuper.setNome("Fulano");       
        objSuper.setEndereco("Av. São Paulo");       
        objSuper.setTelefone("9999-9999");       
        System.out.println("Nome: "+objSuper.getNome()+"\nEndereço: "+objSuper.getEndereco()+"\nTelefone: "+objSuper.getTelefone());       
             
    }
}

Pessoa Juridica.java

public class PessoaJuridica {       
    public static void main(String[] args) {       
        Super objSuper = new Super();     
             
        objSuper.setNome("Ciclano & Cia");       
        objSuper.setEndereco("Av. Rio de Janeiro");       
        objSuper.setTelefone("3333-3333");       
        System.out.println("Nome: "+objSuper.getNome()+"\nEndereço: "+objSuper.getEndereco()+"\nTelefone: "+objSuper.getTelefone());                 
    } 
}

Dados.java

public class Dados{
    public static void main(String [] args){
        new PessoaFisica();
        new PessoaJuridica();
    }
}

Lembrando que todas devem ficar no mesmo pacote ou diretório.

[quote=wswillian]… não é uma boa prática de programação colocar várias classes num só arquivo JAVA. Procure colocar as classes filhas em arquivos separados depois instancie num arquivo assim:
Super.java

public class Super {       
    private String nome;     
    private String endereco;     
    private String telefone;     
     
//métodos gets     
public String getNome(){     
    return this.nome;     
}     
public String getEndereco(){     
    return this.endereco;     
}     
public String getTelefone(){     
    return this.telefone;     
}     
//métodos sets     
public void setNome(String nome){     
   this.nome = nome;     
}     
public void setEndereco(String endereco){     
    this.endereco = endereco;     
}     
public void setTelefone(String telefone){     
    this.telefone = telefone;     
}               
} 

PessoaFisica.java

public class PessoaFisica {       
    public static void main(String[] args) {       
        Super objSuper = new Super();     
             
        objSuper.setNome("Fulano");       
        objSuper.setEndereco("Av. São Paulo");       
        objSuper.setTelefone("9999-9999");       
        System.out.println("Nome: "+objSuper.getNome()+"\nEndereço: "+objSuper.getEndereco()+"\nTelefone: "+objSuper.getTelefone());       
             
    }
}

Pessoa Juridica.java

public class PessoaJuridica {       
    public static void main(String[] args) {       
        Super objSuper = new Super();     
             
        objSuper.setNome("Ciclano & Cia");       
        objSuper.setEndereco("Av. Rio de Janeiro");       
        objSuper.setTelefone("3333-3333");       
        System.out.println("Nome: "+objSuper.getNome()+"\nEndereço: "+objSuper.getEndereco()+"\nTelefone: "+objSuper.getTelefone());                 
    } 
}

Dados.java

public class Dados{
    public static void main(String [] args){
        new PessoaFisica();
        new PessoaJuridica();
    }
}

Lembrando que todas devem ficar no mesmo pacote ou diretório.[/quote]

Obrigado pela ajuda, mas no caso eu não quero usar métodos, apenas herança.

[quote=viniciusms1]cara, não manjo quase nada, mas acho que ele não mostra as informações da segunda porque quando você você executa esta chamando o main da 1º classe (java PessoaFisica), quando uma classe é executada ela só chama um main, para chamar também o da classe PessoaJuridica, você deve deixar isso explicito em PessoaFisica, basta adicionar o comando PessoaJuridica.main(null); no final do metodo main de PessoaFisica e quando executar use o comando java PessoaFisica

Acho q é isso, se eu tiver dito besteira foi mal ae…[/quote]

Realmente, adicionei PessoaJuridica.main(null); ao final da classe PessoaFisica e funcionou, obrigado a todos pela atenção, abraços.