OnJava8-Examples/interfaces/MICollision.java
2015-12-02 09:20:27 -08:00

51 lines
1.1 KiB
Java

// interfaces/MICollision.java
// ©2016 MindView LLC: see Copyright.txt
// We make no guarantees that this code is fit for any purpose.
// Visit http://mindviewinc.com/Books/OnJava/ for more book information.
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
*/