---
title: "abstract class"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/40912-abstract-class"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "skyman"
published: "2002-04-05T08:47:46.000Z"
updated: "2002-04-10T12:06:47.000Z"
replies: 10
views: 411
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/40912-abstract-class"
---

# abstract class

## #1 — skyman, 2002-04-05T08:47Z

Jag har en WebUserControl som heter Citiesctrl som är en abstrakt class.

```
	
public abstract class Citiesctrl : System.Web.UI.UserControl
{
 public System.Web.UI.WebControls.DropDownList DropDownList1;
 public System.Web.UI.WebControls.CheckBox CheckBox1;
 public System.Web.UI.WebControls.Button Button1;
 public System.Web.UI.WebControls.DropDownList DropDownList2;
...
```

 
Sen försöker jag göra en instans av den från en annan WebUserControl (Controlctrl):

```
controls.Citiesctrl cc = new controls.Citiesctrl();
```

 men då får jag felet att jag inte kan göra en instans av den abstrakta klassen. Varför kan man inte göra det? Det gick ju hur bra som helst att skriva det i Microsoft Visual C#.NET, alltså hjälpen fungerade.

Permalänk: https://www.webforum.nu/p/40912

## #2 — Jon, 2002-04-05T08:55Z

Att en klass är abstrakt betyder just att man inte ska kunna instansiera objekt ur den så det är inte så underligt att du inte får göra det :)

Men det ska ju gå att skriva abstrakta klasser så det är riktigt att kompilatorn inta ska klaga när du skriver den.

Permalänk: https://www.webforum.nu/p/638253

## #3 — skyman, 2002-04-05T09:00Z

Ok. Det är det det betyder.
Men kan man ändra till någon annan sorts klass?
Jag provade att ta bort abstract men den kunde fortfarande inte göra en instans, men det klagade inte på på min instans-kod-rad utan senare i koden då jag använder mig av instansen.

Permalänk: https://www.webforum.nu/p/638260

## #4 — Jon, 2002-04-05T09:15Z

Hmm... ska erkänna att jag inte är så jätteinsatt...
Ger dig en länk att suga på. Hoppas att den är til nån nytta.

<http://www.oreilly.com/catalog/progaspdotnet/chapter/ch14.html>

Permalänk: https://www.webforum.nu/p/638294

## #5 — skyman, 2002-04-05T09:43Z

\*dyker ner i texten\* ;)
det var en del att läsa...

Permalänk: https://www.webforum.nu/p/638332

## #6 — skyman, 2002-04-05T11:31Z

Jag flyttade funktionen till den webcontrollen som jag försökte göra en instans av istället och körde this. istället.
Då slapp jag det problemet... för denna gången.

Permalänk: https://www.webforum.nu/p/638409

## #7 — PeW, 2002-04-09T20:59Z

Tanken med abstrakta klasser är ju att det ska vara ett interface / gränssnitt / superklass. Den abstrakta klassen blir då bara en slags deklaration av hur barnklasserna ska fungera.  Du får helt enkelt ärva ned den abstrakta klassen till en egen klass med de metoder som finns deklarerat i den abstrakta och sen använder du dig av din egna klass till att skapa instanser.

Permalänk: https://www.webforum.nu/p/640628

## #8 — skyman, 2002-04-10T06:01Z

Jag ska göra en till class för den controllen som har samma mtoder som den abstrakta, som jag istället kan göra instanser av?

Permalänk: https://www.webforum.nu/p/640670

## #9 — PeW, 2002-04-10T11:25Z

Precis. 
Fördelen med detta är att man kan ha flera klasser som ärver av den abstrakta men att de representerar olika saker. Man kan då få samtliga "under samma" kontroll m.h.a dynamisk bindning. Den abstrakta blir en datatyp som hanterar subklasserna. (de metoder som ingår i den abstrakta)

Permalänk: https://www.webforum.nu/p/640774

## #10 — skyman, 2002-04-10T12:03Z

Det låter ju riktigt bra. Så har jag inte tänkt alls...
Jag har denna abstrakta class nu:

```
public abstract class Datectrl : System.Web.UI.UserControl{}
```

 
Om jag nu vill göra en class i den controllen, hur skriver jag då för att den skall fungera som nu nämde?

Permalänk: https://www.webforum.nu/p/640791

## #11 — SPiN, 2002-04-10T12:06Z

```
public class NyKlass : datectrl {
...
```

Skulle jag gissa på, för du ville väl ärva från den abstrakta superklassen? :q

Permalänk: https://www.webforum.nu/p/640796

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/40912-abstract-class
