|
| Spørgsmål vedr. statisk attribut i superkl~ Fra : Henrik Thostrup Jens~ |
Dato : 18-11-01 21:35 |
|
Hej
Hvis nu jeg har en eller anden absract superklasse med en statisk
attrubut, som to andre klasser nedarver fra, vil instanser af de to
klasser så dele denne attribut?
Henrik
| |
Ulrik Magnusson (18-11-2001)
| Kommentar Fra : Ulrik Magnusson |
Dato : 18-11-01 23:36 |
|
Henrik Thostrup Jensen wrote:
> Hvis nu jeg har en eller anden absract superklasse med en statisk
> attrubut, som to andre klasser nedarver fra, vil instanser af de to
> klasser så dele denne attribut?
Nej - hvis jeg forstår dig ret. Statisk betyder at det tilhører
_klassen_
- nedarvning sker kun i forbindelse med objekter. (det har ingen
betydning om klassen er erklæret "abstract").
class Parent
{
static int staticVar;
}
class Child extends Parent
{
// her kan du ikke referere til staticVar direkte - kun med
// Parent.staticVar
}
Parent.staticVar = 1; //ok
Child.staticVar = 1; //ikke ok
nedenstående (referere til statiske variabler gennem objekter) er
lovligt nu, men man overvejer vist at forbyde det. Det er heller
ikke særligt anbefalelsesværdigt, da læseren sikkert vil tro at
det er objektvariabler og ikke klassevariabler (static variabler)
der refereres til:
Parent p = new Parent();
p.staticVar = 1; // ok
Child c = new Child();
c.staticVar = 1; // ok
Ulrik Magnusson
| |
Ulrik Magnusson (18-11-2001)
| Kommentar Fra : Ulrik Magnusson |
Dato : 18-11-01 23:43 |
|
Ulrik Magnusson wrote:
> Henrik Thostrup Jensen wrote:
>
> > Hvis nu jeg har en eller anden absract superklasse med en statisk
> > attrubut, som to andre klasser nedarver fra, vil instanser af de to
> > klasser så dele denne attribut?
Vi prøver igen, nu hvor jeg ser at du skriver "instanser af de to
klasser"
- ja, det vil de. Men se ellers mit andet svar.
| |
|
|