none
Herança de formulários abstratos RRS feed

  • Pergunta

  • Olá, desejo criar um cenário do seguinte tipo:

    uiBase  -  Formulário Base

    pesquisar() - Método do formulário
    novo()        - Método do Formulário
    remover()  - Método do Formulário

    Os 3 métodos devem ser abstratos


    uiLista  - Formulário herdado do uiBase

    Neste instante quero que a implementação dos 3 métodos abstratos existentes no form uiBase sejam obrigatórios (até porque eles são abstratos) impossibilitando até mesmo a compilação do sistema

    O problema é que não consigo criar um novo formulário que herde de uiBase pelo simples fato dele ser abstrato, como resolver está situação?
    terça-feira, 27 de março de 2007 15:53

Respostas

  • Olá colega,

     

    Não vejo nenhum problema em um formulário implementar uma classe Abstrata, veja o exemplo abaixo

     

    Classe Base

     

    public abstract class uiBase : Form
        {
            public abstract void Perquisar();
            public abstract void Novo();
            public abstract void Remover();
        }

     

     

    Classe Derivada

     

    public partial class Form1 : uiBase
        {
            public Form1()
            {
                InitializeComponent();
            }

            public override void Perquisar()
            {
                throw new Exception("The method or operation is not implemented.");
            }

            public override void Novo()
            {
                throw new Exception("The method or operation is not implemented.");
            }

            public override void Remover()
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

     

    o importante é que implemente todos os métodos obstratos que são obrigatórios para as classes derivadas.

     

    abraços

    terça-feira, 27 de março de 2007 21:19
  • O exemplo acima funciona. Acho que você não entendeu.

     

    De qualquer forma você poderia também usar uma interface que defina seu métodos e fazer seus formulários implementarem a interface.

    quarta-feira, 28 de março de 2007 19:44

Todas as Respostas

  • Olá colega,

     

    Não vejo nenhum problema em um formulário implementar uma classe Abstrata, veja o exemplo abaixo

     

    Classe Base

     

    public abstract class uiBase : Form
        {
            public abstract void Perquisar();
            public abstract void Novo();
            public abstract void Remover();
        }

     

     

    Classe Derivada

     

    public partial class Form1 : uiBase
        {
            public Form1()
            {
                InitializeComponent();
            }

            public override void Perquisar()
            {
                throw new Exception("The method or operation is not implemented.");
            }

            public override void Novo()
            {
                throw new Exception("The method or operation is not implemented.");
            }

            public override void Remover()
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }

     

    o importante é que implemente todos os métodos obstratos que são obrigatórios para as classes derivadas.

     

    abraços

    terça-feira, 27 de março de 2007 21:19
  • O problema é q um formulário herda de um outro formulário e não de uma classe, assim um formulário abstrato não pode ser herdado pois não aparece a opção para seleciona-lo quando vou fazer a herança.


    quarta-feira, 28 de março de 2007 15:50
  • O exemplo acima funciona. Acho que você não entendeu.

     

    De qualquer forma você poderia também usar uma interface que defina seu métodos e fazer seus formulários implementarem a interface.

    quarta-feira, 28 de março de 2007 19:44