Recomendado, 2025

Escolha Do Editor

Diferença entre classe abstrata e interface em c #

Classe abstrata
Uma classe abstrata é aquela que se destina apenas a ser uma classe base de outras classes. O modificador 'abstrato' é usado para fazer um resumo de classe. Um modificador abstrato indica que há alguma implementação ausente que precisa ser implementada na classe derivada dela. A classe abstrata pode ter membros abstratos e não abstratos. Uma classe abstrata deve ter pelo menos um método abstrato, caso contrário, não há uso de declarar essa classe como "abstrata".

Exemplo de classe abstrata em c #:

classe abstrata MyCircle {resumo public int Area (); } Classe MyArea: MyCircle {public override área int () {lado do retorno * lado; .....}
1 2 3 4 5 6 7 8 9 10 11classe abstrata MyCircle {resumo public int Area (); } Classe MyArea: MyCircle {public override área int () {lado do retorno * lado; . . . . . }}

Como mostrado no exemplo acima, o método abstrato 'Área' dentro da classe MyCircle é substituído na classe derivada MyArea.

Interface
Uma interface contém apenas a declaração de membros, incluindo métodos, propriedades, eventos ou indexadores. Não contém a implementação desses membros. Uma classe ou struct implementa a interface, deve fornecer a definição dos métodos declarados na interface. Isso significa que uma interface fornece uma estrutura padrão que a classe derivada precisa seguir.

Exemplo de uma interface em c #:

using System.Collections.Generic; using System.Linq; using System.Text; namespace MyName {public interface MyData {void getdata (); void showdata (); } public class NameData: MyData {double public getdata () {nome da cadeia; Console.WriteLine ("Digite o nome:"); name = Console.ReadLine (); } public void showdata () {Console.WriteLine ("Meu nome é:", nome); }}}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22usando o sistema. Coleções Genérico ; usando o sistema. Linq; usando o sistema. Texto; namespace MyName {public interface MyData {void getdata (); void showdata (); } public class NameData: MyData {double public getdata () {nome da cadeia; Console. WriteLine ("Digite o nome:"); name = Console. Leia a linha ( ) ; } public void showdata () {Console. WriteLine ("Meu nome é:", nome); }}}

Como mostrado no exemplo acima, a interface MyData tem duas declarações de método getdata () e showdata (). A classe NameData que está implementando essa interface deve fornecer a definição dos métodos declarados na interface MyData.

Diferença entre classe abstrata e interface

  1. Uma classe abstrata pode ter membros abstratos e não-abstratos. Mas, em uma interface, todos os membros são implicitamente abstratos e devem ser substituídos na classe derivada.
  2. Uma classe pode herdar várias interfaces, mas apenas uma classe abstrata.
  3. Uma classe abstrata pode conter métodos com ou com uma definição. Mas, uma interface só pode conter assinatura de método.
  4. Uma classe abstrata pode ser total ou parcialmente implementada, mas uma interface deve ser totalmente implementada, ou seja, todos os membros devem ser definidos na classe derivada.
  5. Uma interface não pode conter modificadores de acesso, mas uma classe abstrata pode tê-lo para funções, propriedades ou eventos.
Top