Hi, Kirian,
This sounds like it might be a CS assignment, so instead of posting an
answer, let me give you a couple of links. First, Bruce Eckel has an
excellent book, "Thinking in Java," which is available online (start at
http://www.mindview.net/Books/TIJ/). In Chapter 1, he has a great
explanation of polymorphism. See the heading "Interchangeable objects
with polymorphism."
To figure out whether it's runtime or compile time, try to figure out
when the code is deciding which class it's working on. If it can't
figure it out from the code, then it's a runtime polymorphism. Eckel
uses random numbers in his examples to demonstrate runtime
polymorphism. See his Chapter 7 on polymorphism.
I am not sure what you're asking for in your last question. According
to the Javadocs (http://java.sun.com/j2se/1.4.2/docs/api/), it looks
like Vector is already synchronized. If you would like to know how to
make an unsynchronized object synchronized, I suggest you look at the
explanation in the Javadocs for TreeMap.
Without looking at the Java source, I am not sure how Sun makes Vector
synchronized. However, they might use a class wrapper, such as that
used for TreeMap.
Here's an excerpt from the Javadocs for TreeMap:
"If no such object exists, the map should be "wrapped" using the
Collections.synchronizedMap method. This is best done at creation time,
to prevent accidental unsynchronized access to the map:
Map m = Collections.synchronizedMap(new TreeMap(...)); "
John Smith,
Here's an example and explanation of overriding/polymorphism :
http://javalessons.com/cgi-bin/fun/java-programming.cgi?subject=java-polymorphis
m&1cd=ovd&sid=ao789
As for synchronizing threads, here are lessons about that :
http://javalessons.com/cgi-bin/adv/java-j2ee-jdbc.cgi?subject=java-threads&1cd=t
h2&sid=ao789
http://javalessons.com/cgi-bin/adv/java-j2ee-jdbc.cgi?subject=java-threads&1cd=t
h3&sid=ao789
---------------
Paul Hamaker, SEMM, teaching ICT since 1987
http://javalessons.com