1
我目前正在爲java編寫一個編譯器。 JLS說:「類層次必須是非循環的。」但情況如何:繼承中的循環層次結構
B extends A
C extends A
D extends B
D extends C
這是一個非循環圖,但無效如何檢測到這種情況?我目前正在使用一個BFS,並且每當我看到一個後端我知道有一個週期,但BFS算法沒有檢測到上述情況。
我目前正在爲java編寫一個編譯器。 JLS說:「類層次必須是非循環的。」但情況如何:繼承中的循環層次結構
B extends A
C extends A
D extends B
D extends C
這是一個非循環圖,但無效如何檢測到這種情況?我目前正在使用一個BFS,並且每當我看到一個後端我知道有一個週期,但BFS算法沒有檢測到上述情況。
D
繼承自多個類,Java中不允許多重繼承。這是你如何檢測它。
如果您的樹表示類繼承層次結構,只需添加一個檢查,以確保在類樹中插入一個新的X extends
關係之前,類X還不是已經有其他類extend
。
那麼一個類減速的形式:A類擴展B,C無效正確嗎? – 2012-02-27 18:32:33
在Java中? [當然](http://en.wikipedia.org/wiki/Multiple_inheritance) – 2012-02-27 18:34:09