php重載與重寫的差異?重載與其他語言(如java)有何差異?

WBOY
發布: 2016-08-04 09:20:43
原創
848 人瀏覽過

問題:
  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".

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板