2012-06-14 78 views

回答

21

出於所有實際的目的,類可以實現的接口數量沒有限制,但java不允許從多個超類繼承。但是,如果你真的想要挑選一個類,你可以說一個類可以實現的接口的數量受到接口id在java字節碼中的最大值的限制,或者你必須實現的代碼存儲量這些接口或硬盤空間的數量來存儲您的字節碼。這些都是愚蠢的論點。顯然,因爲你的計算機沒有無限的內存,無限的吞吐量和無限的代碼空間,所以我們知道每件事情都有理論上的最大值,就像你在一個罐子裏有多少個理論上最多的代碼行一樣。

但如果你真的真的想知道的一個類可以實現接口,理論上的最大數量,它是65535

+0

我已經有了不止一個類的子類。它很漂亮。 – mre

+0

是的,python是一種美麗的語言。 –

+0

@mre我不認爲你明白這是她說的作品how_ಠ –

5

的限制比技術更實用。

一個現實的限制是在幾十個手寫代碼。對於生成的代碼,您可以獲得更多,但是如果您有這麼多,我懷疑您的設計有問題。

The limit in the file format is 65535.

鑑於大多數大型項目都小於10K類,所以很難想象,你爲什麼會需要實現在一個類中許多接口。

17

從Java VM規格上Limitations of the JVM

一個類或接口的直接超接口的數量是由ClassFile的結構的interfaces_count項的大小限制爲65535。

這是唯一的限制。這是由於編譯的Java字節碼的結構。

+0

Java語言規範!= JVM規範。 – dacwe

+0

@dacwe這裏的限制不是用Java語言,而是用ClassFile規範。 – Jivings

+0

準確! Java可以編譯爲字節碼以外的東西... – dacwe

-1

對類可以實現的接口數沒有限制。

2

你的班級可以實現無限制的Interfaces和一個Interface可以無限延伸Interfaces但最好的做法是不要實現那麼多的接口。