jabber (jabber)
本文发表在 rolia.net/zh 相约加拿大网上社区枫下论坛
To answer your question, I first create an example:
//other code
Animal animal = new Bird();
//other code

We assume Animal is an abstract class
and it has an abstract method called move().

As I say animal.move(), it does not mean
JVM will use the abstract method of
the Animal class. Instead, it will find this
animal is actually a bird and use the move
method of the Bird. Put it in another way,
JVM will use an overriden version of the
move() method.

---This is the so-called late binding or dynamic binding in Java.

For the whole JVM, there is only ONE
Toolkit. This is the so-called singleton pattern. We, Application Programmers,
cannot create a Toolkit using the "new" keyword. Instead, we use the sole Toolkit
intance. Toolkit.getDefaultToolkit() returns us
a referece (or pointer) to the sole Toolkit.
Then, we assign it to ttkk.

At this stage, let me ask you a question: What
kind of Toolkit do you have? The answer is:
the Default Tookit. OK, now you try to call getImage() method. At this point, JVM will use the overriden version in the default toolkit. Again. late binding, or dynamic binding. The abstract method IS NOT used.

Come back to my animal example. I have
three animals. I let them move by calling the
move() method. The first animal is a bird, so
it will fly; the second one is a snake, so it will crawl; the third one is a frog, so it will jump.....

Hope this can help
更多精彩文章及讨论,请光临枫下论坛. 网址: rolia.net/zh
2000-9-11 -04:00
This post has been archived. It cannot be replied.
Page address has been copied. To share, click to copy page address.
Share Online by QR Code

Back To Topic: hi,jabber.I have a question about abstract class of java?

Back To Forum: HOME枫下论坛枫下论坛主坛工作学习IT技术讨论