Skillnad mellan abstraktklass och gränssnitt i C #

Abstrakt klass
En abstrakt klass är en som endast är avsedd att vara en grundklass i andra klasser. Den "abstrakta" modifieraren används för att göra en klass abstrakt. En abstrakt modifier indikerar att det finns en saknad implementering som behöver genomföras i den klass som härrör från den. Den abstrakta klassen kan ha abstrakta och icke abstrakta medlemmar. En abstrakt klass bör ha minst en abstrakt metod, annars är det inte användbar att förklara den klassen som "abstrakt".

Exempel på abstrakt klass i C #:

1234567891011 abstrakt klass MyCircle abstrakt public int Area (); Klass MyArea: MyCircle public override int Område () retur sida * sida; .....

Som visat i ovanstående exempel är den abstrakta metoden "Area" inuti MyCircle-klassen störd i den härledda klassen MyArea.

Gränssnitt
Ett gränssnitt innehåller endast deklarationen av medlemmar inklusive metoder, egenskaper, händelser eller indexers. Det innehåller inte genomförandet av dessa medlemmar. En klass eller struktur implementerar gränssnittet, måste ge definitionen av metoder som deklareras i gränssnittet. Det betyder att ett gränssnitt ger en standardstruktur som den härledda klassen behöver följa.

Exempel på ett gränssnitt i C #:

12345678910111213141516171819202122 använder System.Collections.Generic; använder System.Linq; använder System.Text; namespace MyName public interface MyData void getdata (); tomgångsdata (); public class NameData: MyData public double getdata () strängnamn; Console.WriteLine ("Ange namnet:"); name = Console.ReadLine (); public void showdata () Console.WriteLine ("Mitt namn är:", namn);

Som visas i ovanstående exempel har gränssnittet MyData två metoddeklaration getdata () och showdata (). Klassen NameData som implementerar detta gränssnitt bör ge definitionen av metoder som deklareras i MyData-gränssnittet.

Skillnad mellan abstraktklass och gränssnitt

  1. En abstrakt klass kan ha abstrakta såväl som icke abstrakta medlemmar. Men, i ett gränssnitt, är alla medlemmar implicit abstrakta och måste överskridas i den härledda klassen.
  2. En klass får ärva flera gränssnitt men bara en abstrakt klass.
  3. En abstrakt klass kan innehålla metoder med eller med en definition. Men ett gränssnitt kan bara innehålla metod signatur.
  4. En abstrakt klass kan helt eller delvis inte implementeras, men ett gränssnitt ska vara fullt implementerat, dvs alla medlemmar måste definieras i den härledande klassen.
  5. Ett gränssnitt kan inte innehålla åtkomstmodifierare, men en abstrakt klass kan ha den för funktioner, egenskaper eller händelser.
DET