Huvudskillnad: Det finns två huvudtyper av klasser: Abstrakt klass och betongklass. Huvudskillnaden mellan de två uppstår genom genomförandet av deras metodfunktionaliteter. Betongklasser är vanliga klasser, där alla metoder är helt implementerade. En abstrakt klass är precis vad namnet antyder. Det är där funktionerna inte definieras, dvs de är abstrakta.
Det finns två huvudtyper av klasser: Abstrakt klass och betongklass. Huvudskillnaden mellan de två uppstår genom genomförandet av deras metodfunktionaliteter. Betongklasser är vanliga klasser, där alla metoder är helt implementerade. En abstrakt klass är precis vad namnet antyder. Det är där funktionerna inte definieras, dvs de är abstrakta. Det är basklassen. När en abstrakt klass definieras upphör den att vara abstrakt och blir en konkret klass. En konkret klass är där implementeringarna för medlemsfunktionerna tillhandahålls. En konkret klass är härledd från basklassen, dvs abstrakt klass.
Ett enklare sätt att tänka på det skulle vara att överväga ett exempel. Tänk på sport, det är ett objekt, men en som inte är definierad. Tekniskt sett finns det inget sådant som sport. Det existerar bara som en kategorisering för andra objekt. Dessa föremål, som fotboll, baseball, basket, hockey, etc. är definierade objekt som kan kategoriseras och genomföras under sport. Därför är sporten den abstrakta klassen, medan fotboll, baseball, basket och hockey är konkreta klasser.
Jämförelse mellan abstrakt klass och betongklass:
Abstrakt klass | Betongklass | |
Typ | Basklass | Standardklass |
metoder | Kan innehålla delvis implementerade metoder | Alla metoder är helt implementerade |
funktioner | Några eller alla deklarerade funktioner är rent virtuella | Inga rent virtuella funktioner |
instansiering | Kan inte instansieras | Kan ordnas |
Image Courtesy: tutorials.jenkov.com, stackoverflow.com