Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.java.programmer > #34268

Re: When to use dynamic binding over dynamic dispatch?

From Eric Sosman <esosman@comcast-dot-net.invalid>
Newsgroups comp.lang.java.programmer
Subject Re: When to use dynamic binding over dynamic dispatch?
Date 2016-05-08 16:44 -0400
Organization A noiseless patient Spider
Message-ID <ngo87v$c68$1@dont-email.me> (permalink)
References (1 earlier) <ngbitr$70c$1@gioia.aioe.org> <dp8if4Fqm9cU1@mid.individual.net> <ngnb33$1rif$1@gioia.aioe.org> <ngnctb$pp9$1@dont-email.me> <ngniup$8u0$1@gioia.aioe.org>

Show all headers | View raw


On 5/8/2016 10:37 AM, Arne Vajhøj wrote:
> On 5/8/2016 8:57 AM, Eric Sosman wrote:
>> On 5/8/2016 8:23 AM, Arne Vajhøj wrote:
>>> On 5/8/2016 6:24 AM, Robert Klemme wrote:
>>>> On 04.05.2016 03:23, Arne Vajhøj wrote:
>>>>> All methods unless declared static or final are virtual in Java,
>>>>> so dynamic dispatch is used all the time.
>>>>
>>>> Methods declared as "final" are virtual as well.
>>>
>>> Given that:
>>>
>>> virtual method = method that can be overridden
>>> final method = method that can not be overridden

     Why is this a "given?"  Who gave it?

>>> then how can it be?
>>
>>     class Super {
>>         public void method() {}
>>     }
>>
>>     class Sub extends Super {
>>         public final void method() {}
>>     }
>>
>>     ...
>>
>>     Super obj = new Sub();
>>     obj.method();
>
> As a starting point I would not call Sub.method
> a virtual method due to above definition.

     Let's try another example, if you dislike my first one:

	class Worker implements Runnable {
	    @Override
	    public final void run() {}
	}

The Worker#run method is quite obviously final, and not
overridable.  Do you maintain that it isn't virtual?  If
we follow the above with

	new Thread(new Worker()).start();

... should the thread's invocation of Worker#run use something
other than virtual invocation?

-- 
esosman@comcast-dot-net.invalid
"Don't be afraid of work. Make work afraid of you." -- TLM

Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

When to use dynamic binding over dynamic dispatch? cdalten@gmail.com - 2016-05-02 18:08 -0700
  Re: When to use dynamic binding over dynamic dispatch? Sebastian <news@seyweiler.dyndns.org> - 2016-05-03 20:47 +0200
    Re: When to use dynamic binding over dynamic dispatch? Lew <lewbloch@gmail.com> - 2016-05-03 12:14 -0700
  Re: When to use dynamic binding over dynamic dispatch? Arne Vajhøj <arne@vajhoej.dk> - 2016-05-03 21:23 -0400
    Re: When to use dynamic binding over dynamic dispatch? Martin Gregorie <martin@address-in-sig.invalid> - 2016-05-04 10:48 +0000
    Re: When to use dynamic binding over dynamic dispatch? Robert Klemme <shortcutter@googlemail.com> - 2016-05-08 12:24 +0200
      Re: When to use dynamic binding over dynamic dispatch? Arne Vajhøj <arne@vajhoej.dk> - 2016-05-08 08:23 -0400
        Re: When to use dynamic binding over dynamic dispatch? Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-05-08 08:57 -0400
          Re: When to use dynamic binding over dynamic dispatch? Arne Vajhøj <arne@vajhoej.dk> - 2016-05-08 10:37 -0400
            Re: When to use dynamic binding over dynamic dispatch? Robert Klemme <shortcutter@googlemail.com> - 2016-05-08 22:30 +0200
              Re: When to use dynamic binding over dynamic dispatch? Arne Vajhøj <arne@vajhoej.dk> - 2016-05-08 23:08 -0400
                Re: When to use dynamic binding over dynamic dispatch? Robert Klemme <shortcutter@googlemail.com> - 2016-05-09 08:16 +0200
            Re: When to use dynamic binding over dynamic dispatch? Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-05-08 16:44 -0400
              Re: When to use dynamic binding over dynamic dispatch? Arne Vajhøj <arne@vajhoej.dk> - 2016-05-08 23:16 -0400
                Re: When to use dynamic binding over dynamic dispatch? Eric Sosman <esosman@comcast-dot-net.invalid> - 2016-05-09 00:39 -0400

csiph-web