Latest web development tutorials

C # Herança

Herança é uma programação orientada a objetos é um dos conceitos mais importantes. Herança nos permite definir uma classe com base em outra classe para definir uma classe, o que torna a criação e manutenção de aplicações muito mais fácil. Mas também propício para a reutilização de código e reduzir o tempo de desenvolvimento.

Quando você cria uma classe, os programadores não precisa completamente re-escrever novos membros de dados e funções de membro, você só precisa criar uma nova classe que herda os membros existentes da classe pode ser. Aclasse base existente é chamado de uma classe, a nova classe é chamada de classe derivada.

Realização da idéia de herançaque pertence (IS-A) relacionamento.Por exemplo, um mamíferopertence (IS-a) Os animais, cães pertencentes a (IS-A)de mamíferos, e, portanto,pertencem aocão(IS-a)animais.

Base e classes derivadas

Uma classe pode ser derivada de mais de uma classe ou interface, o que significa que ele pode herdar várias classes base ou interfaces de dados e funções.

Criar uma classe derivada em C # sintaxe é a seguinte:

<Acess-especificador> class <BASE_CLASS>
{
 ...
}
classe <Derived_Class>: <BASE_CLASS>
{
 ...
}

Suponha-se, há uma forma de classe base, que é o retângulo classe derivada:

using System;
InheritanceApplication namespace
{
   Forma classe 
   {
      setWidth public void (w int)
      {
         largura W =;
      }
      setHeight public void (int h)
      {
         height = h;
      }
      protegidas largura int;
      protegidas altura int;
   }

   // Classe classe derivada Retângulo: Forma
   {
      getArea int público ()
      { 
         retornar (largura * altura); 
      }
   }
   
   classe RectangleTester
   {
      static void Main (string [] args)
      {
         Retângulo Rect = new Rectangle ();

         Rect.setWidth (5);
         Rect.setHeight (7);

         // Área de impressão da Console.WriteLine objeto ( "Área Total: {0}", Rect.getArea ());
         Console.ReadKey ();
      }
   }
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

Área total: 35

Inicializar a classe base

classe derivada herda variáveis ​​de membro e métodos de membro da classe base. Portanto, o objeto pai deve ser criado antes um objeto de sub-classe foi criada. Você pode inicializar a classe pai na lista de inicialização membro.

O programa a seguir demonstra este ponto:

using System;
RectangleApplication namespace
{
   classe Retângulo
   {
      // Variáveis ​​membro protegido comprimento duplo;
      protegidas largura dupla;
      Retângulo pública (duplo l, dupla w)
      {
         comprimento = L;
         largura W =;
      }
      GetArea public double ()
      {
         retornar comprimento * largura;
      }
      Exibição public void ()
      {
         Console.WriteLine ( "Duração: {0}", comprimento);
         Console.WriteLine ( "width: {0}", largura);
         Console.WriteLine ( "Tamanho: {0}", GetArea ());
      }
   } // Retângulo classe End  
   classe Tabletop: Retângulo
   {
      custo duplo privado;
      Tabletop pública (duplo l, dupla w): base (l, w)
      {}
      GetCost public double ()
      {
         custo dupla;
         custo = GetArea () * 70;
         voltar custo;
      }
      Exibição public void ()
      {
         base.Display ();
         Console.WriteLine ( "Custo: {0}", GetCost ());
      }
   }
   classe ExecuteRectangle
   {
      static void Main (string [] args)
      {
         Tabletop t = new mesa (4.5, 7.5);
         t.Display ();
         Console.ReadLine ();
      }
   }
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

Comprimento: 4,5
Largura: 7,5
Área: 33.75
Custo: 2362,5

C # herança múltipla

O C # não suporta herança múltipla.No entanto, você pode usar a interface para conseguir a herança múltipla. O programa a seguir demonstra este ponto:

using System;
InheritanceApplication namespace
{
   Forma classe 
   {
      setWidth public void (w int)
      {
         largura W =;
      }
      setHeight public void (int h)
      {
         height = h;
      }
      protegidas largura int;
      protegidas altura int;
   }

   // PaintCost Classe base
   PaintCost interface pública 
   {
      int getCost (área int);

   }
   // Classe classe derivada Retângulo: Forma, PaintCost
   {
      getArea int público ()
      {
         retornar (largura * altura);
      }
      public int getCost (int área)
      {
         área de retorno * 70;
      }
   }
   classe RectangleTester
   {
      static void Main (string [] args)
      {
         Retângulo Rect = new Rectangle ();
         área int;
         Rect.setWidth (5);
         Rect.setHeight (7);
         área Rect.getArea = ();
         // Área de impressão da Console.WriteLine objeto ( "Área Total: {0}", Rect.getArea ());
         Console.WriteLine ( "Paint custo total: $ {0}", Rect.getCost (área));
         Console.ReadKey ();
      }
   }
}

Quando o código acima é compilado e executado, ele produz os seguintes resultados:

Área total: 35
Pinte Custo total: $ 2450