Ik heb als voorbeeld de volgende code:
Dit werkt prima.
Als ik de code verander in
compiled de code niet eens. En terecht!
Nu ben ik de code van een programma aan het doorspitten voor m'n stage en daar vind ik de volgende code:
Nu bevat de class AbstractSequenceInput (de superclass van FileSequenceInput) geen methode "start()" en toch compiled deze code wel
Hoe kan dat nou?
Ik zie duidelijk iets over het hoofd, ideeen zijn meer dan welkom...
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class Mother extends Object {
void start() {
System.out.println("gestart");
}
}
class Child extends Mother {
void test() {
super.start();
}
}
public class Test {
public static void main(String[] args) {
Child child = new Child();
child.test();
}
} |
Dit werkt prima.
Als ik de code verander in
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class Mother extends Object {
void startNiet() { //naam veranderd
System.out.println("gestart");
}
}
class Child extends Mother {
void test() {
super.start();
}
}
public class Test {
public static void main(String[] args) {
Child child = new Child();
child.test();
}
} |
compiled de code niet eens. En terecht!
Nu ben ik de code van een programma aan het doorspitten voor m'n stage en daar vind ik de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| public class FileSequenceInput extends AbstractSequenceInput
{
private JFileChooser chooser = new JFileChooser();
private String defaultParser;
public FileSequenceInput()
{
super.setExceptionHandler(new FileSequenceParserExceptionHandler());
}
public void start()
{
super.start();
// fetch the default parser from the config information.
defaultParser = getConfigProperties().getProperty( "default" );
defaultParser = defaultParser.substring( 4, defaultParser.length() );
} |
Nu bevat de class AbstractSequenceInput (de superclass van FileSequenceInput) geen methode "start()" en toch compiled deze code wel
Hoe kan dat nou?
Ik zie duidelijk iets over het hoofd, ideeen zijn meer dan welkom...