php重载与重写的区别?重载与其他语言(如java)有何差异?
黄舟
黄舟 2017-04-11 09:17:22
0
1
461

问题:
  PHP手册中关于重载的内容如下:PHP所提供的"重载"(overloading)是指动态地"创建"类属性和方法。
我们是通过魔术方法(magic methods)来实现的。
  如__call($funcname, $arguments) 、 __callStatic($funcname, $arguments)

  而JAVA语言中的重载,是指在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。

调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法。

  提问:php和java关于重载的概念肯定是有区别的,但是不知道到底真正的区别在哪里?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全員に返信(1)
左手右手慢动作

Java是强类型的

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) {
        ...
    }
}

php的所谓overloading, 只是对一些魔法方法的类似重写
评论里有句话不错

This article should call this technique "interpreter hooks".

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!