webForumDet fria alternativet

Arv och sånt

.NETur .NET

7 svar · 512 visningar · startad av natas

Medlem sedan juli 200568 inlägg
Frågan#1

Hej.

"base." gör att man kommer åt basklassen i en ärvd klass.
Men om klassen man jobbar med har ärvt från 3 klasser allaredan.
object->control->minclass <---pseudokod men ni get the picture
Vad kommer man då om använder "base." i "minclass"?, den absolut första klassen "object"?.

Medlem sedan jan. 20012 204 inlägg
#2

Du kan bara ärva från en klass, multipelt arv finns inte. Så då blir det den klass du ärvt ifrån. Den klassen kan i sin tur ärva men det spelar ingen roll för dig.

Medlem sedan juli 200568 inlägg
#3

OK, så man kommer inte till "basen" då?, utan man kommer bara 1 steg upp i hierarkin?.
Men konstigt att det inte heter "parent" istället?, det är ju lite missvisande med "base".

Medlem sedan dec. 19996 522 inlägg
#4

Det kan likaväl heta parent, base eller superclass

Du kan läsa nogrannare förklaring på
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/classinherit.asp

Medlem sedan juli 200568 inlägg
#5

using System;
using System.Collections.Generic;
using System.Text;

namespace kattpess
{
    class FarFar
    {
        public FarFar()
        {

        }

        private string farfarproperty;

        public string FarFarProperty
        {
            get { return farfarproperty; }
            set { farfarproperty = value; }
        }

    }

    class Far : FarFar
    {
        public Far()
        {

        }

        private string farproperty;

        public string FarProperty
        {
            get { return farproperty; }
            set { farproperty = value; }
        }

    }

    class Son : Far
    {
        public Son()
        {

        }

        private string sonproperty;

        public string SonProperty
        {
            get { return sonproperty; }
            set { sonproperty = value; }
        }

    }

}

Men det stämmer inte, instansierar jag "Son" kommer jag åt "FarFarPropertyn", alltså kommer man åt hela hierarkin bakåt ju oavsett hur långt bakåt man ärvt

Medlem sedan apr. 2004298 inlägg
#6

In some OOP languages, a base class may inherit from more than one base class.
.....

A class in .NET may inherit from a class that has already inherited from another class. In addition you may use an interface or even multiple interfaces within a class.

Står det i artikeln som erka bifogade.

Medlem sedan juli 200568 inlägg
#7

Så då blir det den klass du ärvt ifrån. Den klassen kan i sin tur ärva men det spelar ingen roll för dig.

Vad menar då P. ?

Medlem sedan jan. 20012 204 inlägg
#8

natas skrev:

Så då blir det den klass du ärvt ifrån. Den klassen kan i sin tur ärva men det spelar ingen roll för dig.

Vad menar då P. ?

Han menar att du bara kan ärva från en klass men du kan ärva från obegränsat med interface.

135 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)