A. java中定義一個類可以同時繼承兩個類
java中一個類不能直接繼承兩個類。
比如說這樣:class A extends B,C
不能這樣寫,因為java不支持多內繼承,但是可以像下面容這樣實現繼承多個類:
class A extends B
class C extends A
這樣C就同時繼承了B和A兩個類。
(1)java既繼承又實現兩個介面擴展閱讀
當子類繼承了某個類之後,便可以使用父類中的成員變數,但是並不是完全繼承父類的所有成員變數。具體的原則如下:
1)能夠繼承父類的public和protected成員變數;不能夠繼承父類的private成員變數;
2)對於父類的包訪問許可權成員變數,如果子類和父類在同一個包下,則子類能夠繼承;否則,子類不能夠繼承;
3)對於子類可以繼承的父類成員變數,如果在子類中出現了同名稱的成員變數,則會發生隱藏現象,即子類的成員變數會屏蔽掉父類的同名成員變數。如果要在子類中訪問父類中同名成員變數,需要使用super關鍵字來進行引用。
B. 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類型,縮小了方法的使用范圍)。
C. java中介面可以繼承多個介面嗎
介面是常量值和方法定義的集合。介面是一種特殊的抽象類。
java類是單繼承的。classB Extends classA
java介面可以多繼承。Interface3 Extends Interface0, Interface1, interface……
不允許類多重繼承的主要原因是,如果A同時繼承B和C,而b和c同時有一個D方法,A如何決定該繼承那一個呢?
但介面不存在這樣的問題,介面全都是抽象方法繼承誰都無所謂,所以介面可以繼承多個介面。
自我看法
因為類如果可以多繼承,實例化時,如果要跳用父類的方法,如果兩個一樣,
根本就不知道該調用那個父類的方法;
但是介面就不一樣了,因為介面繼承多個介面,就算多個介面有相同的方法,
但是最終實現介面的類只能實現一個方法且@Override一個方法,所以調用時就
不會有問題了
注意:
1)一個類如果實現了一個借口,則要實現該介面的所有方法。
2)方法的名字、返回類型、參數必須與介面中完全一致。如果方法的返回類型不是void,則方法體必須至少有一條return語句。
3)因為介面的方法默認是public類型的,所以在實現的時候一定要用public來修飾(否則默認為protected類型,縮小了方法的使用范圍)。
D. JAVA:一個類實現多個介面
//A介面interface A{
public int getA();
}
//B介面
interface B{
public int getB();
}
//實現了某個介面必須實現其全部的方法
public class ImpAB implements A,B{
public int getA() {
return 0;
}
public int getB() {
return 0;
}
}
(4)java既繼承又實現兩個介面擴展閱讀:
功能
在Java語言規范中,一個方法的特徵僅包括方法的名字,參數的數目和種類,而不包括方法的返回類型,參數的名字以及所拋出來的異常。
在Java編譯器檢查方法的重載時,會根據這些條件判斷兩個方法是否是重載方法。但在Java編譯器檢查方法的置換時,則會進一步檢查兩個方法(分處超類型和子類型)的返還類型和拋出的異常是否相同。
介面實現和類繼承的規則不同,為了數據的安全,繼承時一個類只有一個直接父類,也就是單繼承,但是一個類可以實現多個介面,介面彌補了類的不能多繼承缺點,繼承和介面的雙重設計既保持了類的數據安全也變相實現了多繼承。
Java介面本身沒有任何實現,因為Java介面不涉及表象,而只描述public行為,所以Java介面比Java抽象類更抽象化。但是介面不是類,不能使用new 運算符實例化一個介面。
Java介面的方法只能是抽象的和公開的,Java介面不能有構造器,Java介面可以有public、static和final屬性。即介面中的屬性可以定義為 public static final int value=5。
介面把方法的特徵和方法的實現分割開來。這種分割體現在介面常常代表一個角色,它包裝與該角色相關的操作和屬性,而實現這個介面的類便是扮演這個角色的演員。一個角色由不同的演員來演,而不同的演員之間除了扮演一個共同的角色之外,並不要求其它的共同之處。