Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Benefactor

C# - Herança e Polimorfismo

Recommended Posts

Pessoal, tenho a seguinte classe mãe:

    abstract class Pessoa
    {
        public string codigo;
        public string nome;
        public string cidade;

        // Construtor

        abstract public void setReajuste();

        public virtual string mostraDados()
        {
            return("Codigo: " + codigo + "\n" + "Nome: " + nome + "\n" + "Cidade: " + cidade);
        }


    }

E várias outras filhas mais vou citar apenas essa:

    class Professor : Pessoa
    {
        public double adicional;
        public string especializacao;

        // Construtor

        public override void setReajuste()
        {
            // Implementacao
        }

        public override string mostraDados()
        {
            // Pessoa:mostraDados(); 
            return "Adicional: " + adicional + "\n" + "Especializacao: " + especializacao;
        }

    }

O problema é que no label eu vejo apenas o registros dos campos adicional e especializacao, tentei incluir o Pessoa:mostraDados() no return porém da erro:

 

'Trabalho.Pessoa' is a 'type' but is used like a 'variable'

Como posso utilizar esse método da classe Pessoa sem instanciar pois é uma classe abstrata ?

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

VocÊ pode mostrar os dados da pessoa assim:

return base.mostraDados() + "\nAdicional: " + adicional + "\n" + "Especializacao: " + especializacao;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.