src ([info]src) rakstīja [info]koderi kopienā,
@ 2005-04-20 12:30:00

Previous Entry  Add to memories!  Tell a Friend!  Next Entry
java newbie jautājums
Kā (un vai vispār var) no superklases metodes tikt klāt pie child klases atribūta vērtības?

Upd: Paldies par izglītošanu, problēmu esmu apgājis citādāk.


(Lasīt komentārus) - (Ierakstīt jaunu komentāru)


[info]src
2005-04-20 12:53 (saite)
 package test;
 public abstract class Parent {
     public int testvar=1;
     public void showTestVar()
     {
         System.out.print("testvar: " + this.testvar);
     }
 public  class Child extends Parent {
     public  int testvar =  51;
 }
 class Run {
     public static void main(String[] args) {
         Child ik = new Child();
         ik.showTestVar();
     }
 }


rezultāts ir "testvar: 1"

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]markizs
2005-04-20 12:57 (saite)
hmm. nez. a kas ir ja to mainiigo nepaardefinee, bet taas veertiibas seto parenta un childa konstruktoraa?
man nav java uzinstaleeta uz sitiena eh

(Atbildēt uz šo) (Iepriekšējais)


[info]markizs
2005-04-20 13:17 (saite)
tur obligaati to this vajag btw?

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]src
2005-04-20 13:19 (saite)
ar/bez nav atšķirības

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]markizs
2005-04-20 13:24 (saite)
taa kaa klase ir abstrakta, znachit taas klases objektu nekad nebuus, mosh tad vari rakstiit teiksim ((Child)this).testvar? hacky jau liidz nemanjai

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]src
2005-04-20 13:26 (saite)
tikai child klases ir n x desmit dažādas, līdz ar to neder..

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]markizs
2005-04-20 13:27 (saite)
atliek tikai reflects tad. bet nu stulbi tas ir.
btw a ko atgriezh ja tu parentaa mainiigajam vispaar nepieskir veertiibu?

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]src
2005-04-20 13:38 (saite)
inta defaultā vērtība ir 0

(Atbildēt uz šo) (Iepriekšējais)


[info]markizs
2005-04-20 13:25 (saite)
btw, panjem tajaa get metodee un izdrukaa this.toString(), tipa kas tas par objektu ir. vai arii ar reflectingu paskaties kaada tipa klase ir. interesanti.

(Atbildēt uz šo) (Iepriekšējais)


[info]314
2005-04-20 13:44 (saite)
Atribūtus nevar pārlādēt, dōōh!

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]src
2005-04-20 13:50 (saite)
javā acīmredzot nē, skat title: 'java newbie'

(Atbildēt uz šo) (Iepriekšējais)


[info]314
2005-04-20 13:48 (saite)
public abstract class Parent {
public int testvar = 1;
public void showTestVar() {
System.out.print("testvar: " + this.testvar);
}
}

public class Child extends Parent {
Child() {
testvar = 51;
}
}

class Run {
public static void main(String[] args) {
Child ik = new Child();
ik.showTestVar();
}
}

(Atbildēt uz šo) (Iepriekšējais) (Diskusija)


[info]src
2005-04-20 13:50 (saite)
kā jau markizam atbildēju - šitā saprotams viss rulez, tik tā nelaime, ka child klases ģenerē izstrādes rīks.

(Atbildēt uz šo) (Iepriekšējais)


[info]misame
2005-05-25 11:23 (saite)
ja godīgi, pats piemērs no OO viedokļa jau izskatās biku līks:
par cik lauks "testvar" jau ir deklarēts bāzes klasē, tad kāda X-a pēc tev to vēlreiz aprakstīt mantojošajā klasē? Atliek TAČU tikai child klases konstruktorā piešķirt viņam vētību.
Tipa
public  class Child extends Parent {
   //nezinu, vai Javā šādi raksta konstruktoru, bet nu 
   //to es biju domājis
    public Child(){ 
      this.testvar=51;
    }
}

Attiecīgi Child konstruktora sākumā vispirms tiks pasaukts bāzes klases konstruktors, kurš testvar uzstādīs uz 1, bet pēc tam izpildīsies Child konstruktors, kurš viņu pārliks uz 51. Vismaz tā būtu VB.Net-ā :)))

(Atbildēt uz šo) (Iepriekšējais)


(Lasīt komentārus) -

Neesi iežurnalējies. Iežurnalēties?