Toon posts:

[java] superklasse verwijzing

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Als ik in een subklasse verwijs naar een methode, zal deze 1 superklasse niveau hoger zoeken naar de methode, of blijven hoger zoeken tot hij de methode gevonden heeft?

bv, in hierarchie:

A super
B ..
C ..
D laatste sub

Als ik in D een methode "zoek" aanroep, zal deze gaan zoeken in C en dan stoppen indien wel/niet gevonden, of ook zoeken in B en A tot hij die methode gevonden heeft?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Het lijkt me dat hij altijd de hiërarchie in omgekeerde volgorde zal afwerken. Maar dit kun je toch heel simpel even testen door zelf 4 classes te maken en het uit te proberen? :?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Standeman
  • Registratie: November 2000
  • Laatst online: 00:38

Standeman

Prutser 1e klasse

In java gaat hij door tot hij bij de Object class is. Hoe het in andere talen is, durf ik niet te zeggen, maar ik zou raar staan te kijken als dat anders is..

The ships hung in the sky in much the same way that bricks don’t.


Acties:
  • 0 Henk 'm!

  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 10-10 13:28
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class SuperSuper {
    
    public static void main( String args[] ){
        new A().print0();
        new B().print0();
        new C().print0();
        new D().print0();
        
        new C().print1();
        
        new D().print1();
        new D().print2();
        new D().print3();
    }
    
    static class A {
        public void print0(){
            System.out.println( "A" );
        }
    }

    static class B extends A {
        public void print1(){
            System.out.println( "B" );
        }
    }
    
    static class C extends B {
        
        public void print1(){
            System.out.println( "C" );
        }
        
        public void print2(){
            System.out.println( "C" );
        }
    }
    
    static class D extends C {
        public void print3(){
            System.out.println( "D" );
        }
    }
    
}


Voer deze code eens uit en trek je eigen conclusies.. ;)

[ Voor 3% gewijzigd door Enfer op 13-09-2011 14:10 ]