多字段继承,为避免混淆,simple name与qualified name的使用
package java20180129_1; interface Frob { float v=2.0f; } class SuperTest{ int v=3; } class Demo extends SuperTest implements Frob{ public static void main(String[] args) { new Demo().printV(); } /** * 多继承字段 * 不能直接写v,要么写成super.v,要么写成Frob.v */ void printV(){ // System.out.println(v); System.out.println((Frob.v+super.v)/2); } }
package java20180129_1; interface Color{ int RED=0,GREEN=1,BLUE=2; } interface TrafficLight{ int RED=0,YELLOW=1,GREEN=2; } class Demo implements Color, TrafficLight { public static void main(String[] args) { // System.out.println(GREEN); // System.out.println(RED); System.out.println(TrafficLight.GREEN); System.out.println(Color.RED); } }
下面的Red不会产生混淆
package java20180129_1; interface Colorable { int RED = 0xff0000, GREEN = 0x00ff00, BLUE = 0x0000ff; } interface Paintable extends Colorable { int MATTE = 0, GLOSSY = 1; } class Point { int x, y; } class ColoredPoint extends Point implements Colorable { } class PaintedPoint extends ColoredPoint implements Paintable { int p = RED; }