Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #27404
| From | Wayne <nospam@all.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Java 8 question about default and static methods in interfaces |
| References | <JX4Fu.281210$2R1.21049@fx13.iad> <52e505e8$0$294$14726298@news.sunsite.dk> <52e54ff2$0$295$14726298@news.sunsite.dk> |
| Message-ID | <0LiFu.157075$JL1.152266@fx08.iad> (permalink) |
| Organization | Newshosting.com - Highest quality at a great price! www.newshosting.com |
| Date | 2014-01-26 20:37 -0500 |
On 1/26/2014 1:12 PM, Arne Vajhøj wrote:
> On 1/26/2014 7:56 AM, Arne Vajhøj wrote:
>> On 1/26/2014 4:55 AM, Wayne wrote:
>>> public interface Foo {
>>> default void method () {
>>> System.out.println("Foo.method");
>>> }
>>> }
>>> public interface Bar extends Foo {
>>> default void method () {
>>> System.out.println("Bar.method");
>>> }
>>> }
>>>
>>> The question is, can Foo.method be used from Bar.method?
>>> In other words, is the following version of Bar legal?
>>>
>>> public interface Bar extends Foo {
>>> default void method () {
>>> super.method();
>>> System.out.println("Bar.method");
>>> }
>>> }
>>
>> Well - the following compiles and run with Java 8 EA something:
>>
>> public class DefMet {
>> public static void main(String[] args) {
>> Bar o = new C();
>> o.method();
>> }
>> }
>>
>> class C implements Bar {
>> }
>>
>> interface Foo {
>> default void method () {
>> System.out.println("Foo.method");
>> }
>> }
>>
>> interface Bar extends Foo {
>> default void method () {
>> Foo.super.method();
>> System.out.println("Bar.method");
>> }
>> }
>>
>> Note the use of Foo.super instead of just super.
>
> Syntax must be intended for:
>
> public class DefMet2 {
> public static void main(String[] args) {
> Bar o = new C();
> o.method();
> }
> }
>
> class C implements Foo, Bar {
> public void method() {
> Foo.super.method();
> Bar.super.method();
> System.out.println("C.method");
> }
> }
>
> interface Foo {
> default void method () {
> System.out.println("Foo.method");
> }
> }
>
> interface Bar {
> default void method () {
> System.out.println("Bar.method");
> }
> }
>
> Arne
>
>
Thanks!
--
Wayne
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Find similar | Unroll thread
Java 8 question about default and static methods in interfaces Wayne <nospam@all.invalid> - 2014-01-26 04:55 -0500
Re: Java 8 question about default and static methods in interfaces Arne Vajhøj <arne@vajhoej.dk> - 2014-01-26 07:56 -0500
Re: Java 8 question about default and static methods in interfaces Arne Vajhøj <arne@vajhoej.dk> - 2014-01-26 13:12 -0500
Re: Java 8 question about default and static methods in interfaces Wayne <nospam@all.invalid> - 2014-01-26 20:37 -0500
csiph-web