站長資訊網
        最全最豐富的資訊網站

        php構造方法和java構造方法有什么區別

        區別:1、重寫子類構造函數時,PHP不調用父類,而java默認在第一個語句前調用父類構造方法;2、Java允許有多個構造方法,而PHP值允許有一個構造方法;3、Java中的構造方法是必須的,而PHP中的不是。

        php構造方法和java構造方法有什么區別

        本文操作環境:Windows10系統、PHP7.1版、Dell G3電腦。

        php構造方法和java構造方法有什么區別

        早期的PHP是沒有面向對象功能的,但是隨著PHP發展,從PHP4開始,也加入了面向對象。PHP的面向對象語法是從JAVA演化而來,很多地方類似,但是又發展出自己的特色。以構造函數來說,PHP4中與類同名的函數就被視為構造函數(與JAVA一樣),但是PHP5中已經不推薦這種寫法了,推薦用__construct來作為構造函數的名稱。

        1.重寫子類構造函數的時候,PHP會不調用父類,JAVA默認在第一個語句前調用父類構造函數

        JAVA

        class Father{     public Father(){         System.out.println("this is fahter");     } } class Child extends Father{     public Child(){         System.out.println("this is Child");     } } public class Test {     public static void main(String[] args){         Child c = new Child();     } }

        輸出結果:

        this is fahter

        this is Child

        <?php class Father{     public function __construct(){         echo "正在調用Father";     } } class Child extends Father{     public function __construct(){         echo "正在調用Child";     } } $c = new Child();

        輸出結果:

        正在調用Child

        2.重載的實現方式

        JAVA允許有多個構造函數,參數的類型和順序各不相同。PHP只允許有一個構造函數,但是允許有默認參數,無法實現重載,但是可以模擬重載效果。

        JAVA代碼

        class Car{     private String _color;     //設置兩個構造函數,一個需要參數一個不需要參數     public Car(String color){         this._color = color;     }          public Car(){         this._color = "red";     }          public String getCarColor(){         return this._color;     } } public class TestCar {     public static void main(String[] args){         Car c1 = new Car();         System.out.println(c1.getCarColor());         //打印red                  Car c2 = new Car("black");         System.out.println(c2.getCarColor());         //打印black     } }

        PHP代碼

        <?php class Car{     private $_color;     //構造函數帶上默認參數     public function __construct($color="red"){         $this->_color = $color;     }     public function getCarColor(){         return $this->_color;     } } $c1 = new Car(); echo $c1->getCarColor(); //red $c2 = new Car('black'); echo $c2->getCarColor(); //black

        3.JAVA中構造函數是必須的,如果沒有構造函數,編譯器會自動加上,PHP中則不會。

        4.JAVA中父類的構造函數必須在第一句被調用,PHP的話沒有這個限制,甚至可以在構造函數最后一句后再調用。

        5.可以通過this()調用另一個構造函數,PHP沒有類似功能。

        class Pen{     private String _color;     public Pen(){              this("red");//必須放在第一行     }          public Pen(String color){         this._color = color;     } }

        推薦學習:《PHP視頻教程》

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 少妇人妻无码精品视频| 精品人妻中文av一区二区三区| 影院无码人妻精品一区二区| 99R在线精品视频在线播放| 午夜精品久久久久久久久| 国产高清在线精品一区小说| 国产精品va无码一区二区| 中文字幕无码精品亚洲资源网久久| 国产精品亚洲高清一区二区| 精品国产污污免费网站| 久久亚洲精品人成综合网| 亚洲国产精品国产自在在线| 国产区精品高清在线观看| 久久青草国产精品一区| heyzo高无码国产精品| 人妻少妇精品视频二区| 亚洲福利精品电影在线观看| 狠狠精品干练久久久无码中文字幕| 亚洲精品线在线观看| 99精品在线播放| 国产精品视频永久免费播放| 久久成人国产精品| 青草国产精品久久久久久| 亚洲午夜福利精品久久| 欧美精品亚洲精品日韩专区| 国产精品亚洲w码日韩中文| 亚洲国产精品成| 久久国产精品99精品国产987| 99在线热播精品免费99热| 国产精品视频第一区二区三区 | 久久精品这里热有精品| 97久久精品无码一区二区| 成人区人妻精品一区二区不卡视频| 蜜国产精品jk白丝AV网站| 无码国产精品一区二区免费3p| 中文字幕精品亚洲无线码一区| 色偷偷88欧美精品久久久| 四虎影院国产精品| 午夜亚洲av永久无码精品 | 国产精品久久久久久久午夜片| 国产精品免费久久久久影院|