Avatar billede woodbase Nybegynder
25. februar 2004 - 21:11 Der er 14 kommentarer og
1 løsning

Instans variabler i abstract class

kan jeg lave instans variabler i en abstrakt klasse??

eks.

protected int belob;

public abstract class Optal {

public int getNoget(){
return 0,0;
}
}


Hvis ja: Hvordan for jeg så fat i dem fra sub-klasser?
Avatar billede rasmusbg Nybegynder
25. februar 2004 - 21:46 #1
Skulle det ikke se sådan ud:

public abstract class Optal {

  protected int belob;
 
  public int getNoget() {
    return 0,0;
  }
}

Så skulle du i en subklasse bare kunne tilgå beloeb direkte, altså på denne måde:

public class Optal2 extends Optal {

  public int getBeloeb() {
    return beloeb;
  }
}
Avatar billede arne_v Ekspert
25. februar 2004 - 22:00 #2
Ja.

På præcis samme måde som du ville bruge dem hvis de var instans variable
i den afledte klasse - eneste krav er at visibility må ikke være
private.
Avatar billede rasmusbg Nybegynder
25. februar 2004 - 22:02 #3
Hvis scope (eller visibility) er private, skal du lave public get- og setmetoder til variablen
Avatar billede arne_v Ekspert
25. februar 2004 - 22:05 #4
I den abstrakte basis klasse.
Avatar billede rasmusbg Nybegynder
25. februar 2004 - 22:09 #5
Tak arne_v. Det glemte jeg lige ;o)
Avatar billede Slettet bruger
25. februar 2004 - 23:06 #6
hrmmmmm, er det nu også helt sandt arne_v, kan get- og set-metoderne ikke nøjes med at være protected?
Avatar billede rasmusbg Nybegynder
25. februar 2004 - 23:10 #7
Jo, selvfølgelig corholio! Endnu en forglemmelse fra min side.
Jeg bruger næsten aldrig protected. Det er stort set altid public eller private.
Avatar billede jakoba Nybegynder
25. februar 2004 - 23:27 #8
Nej. det kan du ikke. en variabel du definerer i en abstrakt klasse bliver automatisk
static og final.

Så medmindre det er meningen at de oprettede variable skal være det kan du ikke bruge dem til noget.

Ups. her er jeg uenig med arne. Prøv det og se hvad der sker :-))
Avatar billede Slettet bruger
25. februar 2004 - 23:29 #9
og det vil jeg så være uenig med dig i jakobA....

det er (så vidt jeg husker) kun interfaces der gør variabler public, static og final
Avatar billede jakoba Nybegynder
25. februar 2004 - 23:34 #10
Og som sædvanlig har arne ret.  Det er i interfaces enhver variabel er final static.
Avatar billede arne_v Ekspert
26. februar 2004 - 09:07 #11
get og set skal selvfølgelig kun være non-private i denne sammenhæng

men jeg ville normalt undgå protected get og set, enten protected
variabel eller private variabel og public get og set.

Ikke public get og set metoder er ikke bean compliant og kode
som bruger reflction og forventer en bean kan få problemer.
Avatar billede woodbase Nybegynder
27. februar 2004 - 13:54 #12
hmm... Det er fedt at I hjælper med at besvare spørgsmålet - men ingen af jer har angivet at det er et svar...?
Avatar billede arne_v Ekspert
27. februar 2004 - 14:25 #13
du kan jo bede om et svar
Avatar billede woodbase Nybegynder
27. februar 2004 - 14:30 #14
Hvorfor spørge hvis man ikke ønsker svar? *gg*

Kan bier bestøve kødædende planter?
Hvis ja - er det så at betragte som et engangsknald?
Avatar billede arne_v Ekspert
27. februar 2004 - 14:34 #15
Var der ikke andre som også havde fortjent ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester