OnJava8-Examples/streams/MICollision.java

49 lines
1000 B
Java
Raw Normal View History

// streams/MICollision.java
2015-11-14 16:18:05 -08:00
// <20>2016 MindView LLC: see Copyright.txt
import java.util.*;
interface Bob1 {
default void bob() { System.out.println("Bob1::bob"); }
}
interface Bob2 {
default void bob() { System.out.println("Bob2::bob"); }
}
// class Bob implements Bob1, Bob2 {}
/* Produces:
error: class Bob inherits unrelated defaults
for bob() from types Bob1 and Bob2
class Bob implements Bob1, Bob2 {}
^
1 error
*/
interface Sam1 {
default void sam() { System.out.println("Sam1::sam"); }
}
interface Sam2 {
default void sam(int i) { System.out.println(i * 2); }
}
// This works because the argument lists are distinct:
class Sam implements Sam1, Sam2 {}
interface Max1 {
default void max() { System.out.println("Max1::max"); }
}
interface Max2 {
default int max() { return 47; }
}
// class Max implements Max1, Max2 {}
/* Produces:
error: types Max2 and Max1 are incompatible;
both define max(), but with unrelated return types
class Max implements Max1, Max2 {}
^
1 error
*/