1. 程式人生 > >java如何實現多繼承

java如何實現多繼承

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

接下來,我們就使用內部類,達到我們所需的目標了。

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)這兩個方法的功能呢。