Java類不支持多繼承是爲了程序安全考慮的,我們知道子類能繼承父類的所有屬性和方法。
類多繼承情況下: 兩個父類存在同名方法或變量,那麼子類該調用誰就變得模糊不清了。
接口多實現情況下: 兩個接口存在同名方法,因爲都是需要實現類去實現的,所以無關大雅;而接口的變量默認是static final類型的,也就是常量,根據JVM的底層機制,常量在編譯期就確定了值,倘若兩個同名常量不同值,編譯期就直接編譯不通過了。
綜上,Java拋棄了多繼承類的機制,轉而使用單繼承、多實現的機制。
Java類不支持多繼承是爲了程序安全考慮的,我們知道子類能繼承父類的所有屬性和方法。
類多繼承情況下: 兩個父類存在同名方法或變量,那麼子類該調用誰就變得模糊不清了。
接口多實現情況下: 兩個接口存在同名方法,因爲都是需要實現類去實現的,所以無關大雅;而接口的變量默認是static final類型的,也就是常量,根據JVM的底層機制,常量在編譯期就確定了值,倘若兩個同名常量不同值,編譯期就直接編譯不通過了。
綜上,Java拋棄了多繼承類的機制,轉而使用單繼承、多實現的機制。