onko visual basicissa periytymistä?
Minulla on siis kaksi muuttujaa jotka hakevat tietonsa Autot Typestä
Ensimmäinen muuttuja on henkilöautot ja toinen kuorma-autot.
Kuormaautot tarvitsevat kaikki samat tiedot kuin henkilautot mutta lisäksi ne tarvitsevat painon.
Onko siis mahdollista tehdä Type joka kopioi toisen typen tiedot ja lisää pari omaa.
Tällainen se on:
Public Type Autot index As Integer nimi As String vari As Integer vuosimalli As Integer '------------------- ---tarvitsee vainkuorma-autoissa paino As Integer End Type Public henkiloautot() As Autot Public kuorma-autot() As Autot
ja tällaiseksi sen haluaisin
Public Type Autot index As Integer nimi As String vari As Integer vuosimalli As Integer End Type Public Type kAutot HAETAAN Auto TYPESTA paino As Integer End Type Public henkiloautot() As Autot Public kuorma-autot() As kAutot
Samojen kenttien määritys tuolla tavalla ei onnistu, vaan joudut kirjoittamaan ne uudestaan jokaisen tyypin kuvaukseen. Käytännössä samojen kenttien kirjoitus on aika pieni vaiva, kun ohjelmassa on harvemmin kovin monta eri tyyppiä, mutta jos haluat, voit myös luoda tyypit sisäkkäin seuraavan mallin mukaisesti:
Private Type ATiedot index As Integer nimi As String vari As Integer vuosimalli As Integer End Type Private Type Auto tiedot As ATiedot End Type Private Type KAuto tiedot As ATiedot paino As Integer End Type
Jos autoja ja kuorma-autoja kuitenkin käsitellään pohjimmiltaan samalla tavalla, voisi olla järkevää käyttää molemmissa samaa tyyppiä, jossa on kaikki mahdolliset kentät, mutta ylimääräisiä kenttiä käytetään ainoastaan silloin, kun kyseessä on kuorma-auto. Tällöin täytyy olla vielä yksi kenttä, joka ilmoittaa auton tyypin. Nyt jos kaikkia autoja täytyy tutkia vaikkapa silmukassa, samalla kertaa voi käsitellä sekä tavalliset että kuorma-autot.
Aihe on jo aika vanha, joten et voi enää vastata siihen.