一個java類可以有
⑴ java 可不可以繼承多個類
1,java 是不可以繼承多個類,java是單繼承的,但是java 通過 介面可以實現多繼承
2,也就是說, 一個java類只能繼承一個父類, 但可以有多個介面.
3,若子類繼承的父類中擁有相同的成員變數,子類在引用該變數時將無法判別使用哪個父類的成員變數。如:
public class classA // 父類 classA
{
private int num = 0;
}
public class classB // 父類 classB
{
private int num = 1;
}
public class classC extends classA,classB // 子類 classC 繼承於 classA 和 classB
{
public static void main(String [] args)
{
classC obj = new classC();
obj.print(); // 調用父類成員變數 num , 那 num 等於 0 還是 1 ?
}
public void print()
{
System.out.println(super.num);
}
}
2.若一個子類繼承的多個父類擁有相同方法,同時子類並未覆蓋該方法(若覆蓋,則直接使用子類中該方法),那麼調用該方法時將無法確定調用哪個父類的方法。如:
public class classA // 父類 classA
{
public void fun()
{
System.out.print("hello");
}
}
public class classB // 父類 classB
{
public void fun()
{
System.out.print("hello");
}
}
public class classC extends classA,classB
{
public static void main(String [] args)
{
classC t = new classC();
t.print();
}
public void print()
{
super.fun(); // 調用父類中 fun 方法,但由於classA、classB都有fun()方法,將無法確定使用
// 哪個父類中的方法
}
}
因此,Java僅允許單繼承,即一個子類只能繼承於一個父類。但為了拓展子類的功能,Java使用介面以克服不使用多繼承帶來的不足。
介面是一個特殊的抽象類,介面中成員變數均默認為 static final 類型,即常量,且介面中的方法都為抽象的,都沒有方法體。
資料來源:http://blog.sina.com.cn/s/blog_6ed1419201013x47.html