Ⅰ C++中有多繼承,java 為什麼只有單繼承
Java不支持多繼承,但是通過一些巧妙的設計來達到和多繼承同樣的效果專
通過介面、內隱類屬,繼承、實現,互相配合,達到多繼承的效果
1、Java中一個類不能繼承多個具體class。
2、一個類只可繼承自一個具體 class,但可實現多個介面。
interface不涉及到實現細節,不與任何存儲空間有關連。
可以實現合並多個 interface ,達到可向上轉型為多種基類的目的。
新類可繼承自一個具象class,其餘繼承都得是interfaces。
3、outer class不可繼承自多個具體 class,可在其內部設多個inner class,每個inner class都能各自繼承某一實現類。
inner class不受限於outer class 是否已經繼承自某一實現類。
4、inner class可以說是多重繼承問題的完整解決方案。
inner class 可 「繼承自多個具象或抽象類」。
一個類不能繼承自多個一般類。
Ⅱ java中一個介面可以繼承幾個介面嗎
可以,介面是常量值和方法定義的集合,是一種特殊的抽象類,可以繼承多個介面。例如:Interface3 Extends Interface0, Interface1, interface……。
java介面解析如下:
在Java中,定義一個介面的形式如下:
[public] interface InterfaceName {
}
介面中可以含有變數和方法。但是要注意,介面中的變數會被隱式地指定為public static final變數,而方法會被隱式地指定為public abstract方法且只能是public abstract方法,並且介面中所有的方法不能有具體的實現、
也就是說,介面中的方法必須都是抽象方法。
要讓一個類遵循某組特地的介面需要使用implements關鍵字,具體格式如下:
class ClassName implements Interface1,Interface2,[....]{
}
可以看出,允許一個類遵循多個特定的介面。如果一個非抽象類遵循了某個介面,就必須實現該介面中的所有方法。對於遵循某個介面的抽象類,可以不實現該介面中的抽象方法。
(2)java可以繼承多個抽象類嗎擴展閱讀:
java繼承介面的特性:
1)一個類如果實現了一個借口,則要實現該介面的所有方法。
2)方法的名字、返回類型、參數必須與介面中完全一致。如果方法的返回類型不是void,則方法體必須至少有一條return語句。
3)因為介面的方法默認是public類型的,所以在實現的時候一定要用public來修飾(否則默認為protected類型,縮小了方法的使用范圍)。