在java中,原則上是不允許多繼承的,也就是類與類之間只可以單繼承。
那么,有沒有辦法,可以在不使用接口的情況下實現多繼承呢? 答案是可以。
使用內部類就可以多繼承,嚴格來說,還不是實現多繼承,但是這種方法可以實現多繼承所需的功能,所以把它稱為實現了多繼承。
下面就舉個例子:
假如有一個打電話類Call,里面實現了一個可以打電話的功能的方法callSomebody(String phoneNum);
一個發信息類SendMessage,里面實現了一個可以發信息功能的方法sendToSomebody(String phoneNum);
還有一個手機類Phone,這個手機類想實現打電話和發信息的功能;我們知道可以用繼承來獲得父類的方法,但是只可以單繼承呀,也就是說只可以實現其中一個類里面的方法,這並不滿足我們的需求。
接下來,我們就使用內部類,達到我們所需的目標了。

public class Call { public void callSomebody(String phoneNum){ System.out.println("我在打電話喔,呼叫的號碼是:" + phoneNum); } }

class SendMessage { public void sendToSomebody(String phoneNum){ System.out.println("我在發短信喔,發送給 :" + phoneNum); } }

public class Phone { private class MyCall extends Call{ } private class MySendMessage extends SendMessage{ } private MyCall call = new MyCall(); private MySendMessage send = new MySendMessage(); public void phoneCall(String phoneNum){ call.callSomebody(phoneNum); } public void phoneSend(String phoneNum){ send.sendToSomebody(phoneNum); } public static void main(String[] args) { Phone phone = new Phone(); phone.phoneCall("110"); phone.phoneSend("119"); } }
這樣就實現了callSomebody(String phoneNum) 和sendToSomebody(String phoneNum)這兩個方法的功能呢。
————————————————
版權聲明:本文為CSDN博主「rocling」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/rocling/article/details/82350515