如下代码是摘取InputStream相关片段:
ObjectInput_.java
public interface ObjectInput_ {
public int read();
}
InputStream_.java
public abstract class InputStream_ {
public int read(){
return 0;
}
}
ObjectInputStream_.java
public class ObjectInputStream_ extends InputStream_ implements ObjectInput_ {
public int read() {
return 0;
}
}
如果把ObjectInputStream_类删了,就不显示那个图标了,是因为ObjectInputStream_既继承了InputStream_又实现了ObjectInput_
而你给的AbstractCollection例子能显示是因为其子类AbstractSet同时实现了Set
public abstract class AbstractSet<E> extends AbstractCollection<E> implements Set<E>
github上有idea的源码,可以下下来看看逻辑,比方上面的判断是在文件:
java\java-impl\src\com\intellij\codeInsight\daemon\impl\JavaLineMarkerProvider.java
你是怎么定义的,是菱形继承关系么
这个图标是同级重写方法的意思。
看这个图
https://blog.csdn.net/hou973561160/article/details/80177880
1、红框(向上箭头)是代表接口实现
2、sun接口是继承Father接口,isEmpty是重写而不是实现