package edu.umd.cs.daveho; interface Vertex extends Comparable { } interface Edge < ActualEdgeType, VertexType extends Vertex > extends Comparable { } class AbstractEdge < ActualEdgeType extends AbstractEdge, VertexType extends AbstractVertex > implements Edge { private int id; public int compareTo(ActualEdgeType other) { // Error: "The field other.id is not visible" return id - other.id; } } class AbstractVertex < EdgeType extends AbstractEdge, ActualVertexType extends AbstractVertex > implements Vertex { private int id; public int compareTo(ActualVertexType other) { // Error: "The field other.id is not visible" return id - other.id; } } public class VisibilityBug { }