問題:
PHP手冊中關於重載的內容如下:PHP所提供的"重載"(overloading)是指動態地"創建"類屬性和方法。
我們是透過魔術方法(magic methods)來實現的。
如__call($funcname, $arguments) 、 __callStatic($funcname, $arguments)
而JAVA語言中的重載,是指在類別中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。
呼叫方法時透過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法。
提問:php和java關於重載的概念肯定是有區別的,但是不知道到底真正的區別在哪裡?
問題:
PHP手冊中關於重載的內容如下:PHP所提供的"重載"(overloading)是指動態地"創建"類屬性和方法。
我們是透過魔術方法(magic methods)來實現的。
如__call($funcname, $arguments) 、 __callStatic($funcname, $arguments)
而JAVA語言中的重載,是指在類別中可以創建多個方法,它們具有相同的名字,但具有不同的參數和不同的定義。
呼叫方法時透過傳遞給它們的不同參數個數和參數類型來決定具體使用哪個方法。
提問:php和java關於重載的概念肯定是有區別的,但是不知道到底真正的區別在哪裡?
Java是強型的
<code>public class DataArtist { ... public void draw(String s) { ... } public void draw(int i) { ... } public void draw(double f) { ... } public void draw(int i, double f) { ... } }</code>
php的所謂overloading, 只是對一些魔法方法的類似重寫
評論裡有句話不錯
This article should call this technique "interpreter hooks".