Quantcast
Channel: Últimos conteúdos
Viewing all articles
Browse latest Browse all 14190

C# - Ajuda com Herança e Polimorfismo

$
0
0

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!


Viewing all articles
Browse latest Browse all 14190

Trending Articles