Witam,
nie byłem pewien gdzie dać ten temat bo dotyczy dwóch języków, przepraszam jeśli to zły dział. Programowałem trochę w C++ i Java, ostatnio jednak większość czasu programowałem w Java i zamierzałem sobie teraz przypomnieć troszkę C++ i natrafiłem na pewien mankament, którego nie mogę wytłumaczyć, bo pewnie mi brakuje jakichś wiadomości. Otóż mam dwa takie same kody napisane w obu językach:
Kod C++:
#include <cstdio>
#include <cstdlib>
using namespace std;
class base {
public:
void f() const { printf( "tekst1" ); }
};
class inh : public base {
public:
void f() const { printf( "tekst2" ); }
};
int main() {
base* o = new inh();
o->f();
printf( "\n\n" );
system( "pause" );
return EXIT_SUCCESS;
}
i tu mi wyświetla tekst1.
Kod w Java:
class base {
public void f() { System.out.println( "tekst1" ); }
}
class inh extends base {
public void f() { System.out.println( "tekst2" ); }
}
public class java1 {
public static void main( String args[] ) {
base o = new inh();
o.f();
}
}
i tu mi wyświetla tekst2. Dlaczego?
Pozdrawiam i dziękuję z góry za pomoc.
JT