Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> PHP

PHP में अमूर्त स्टैटिक मेथड में चाइल्ड क्लास इंस्टेंशिएट करें?

इसके लिए, self के साथ $anyObjectName=new static() का उपयोग करें।

उदाहरण

PHP कोड इस प्रकार है:

<!DOCTYPE html> 
<html> 
<body> 
    <?php 
        abstract class Base{ 
            protected static $fullName = ''; 
            abstract protected function customFunction(); 
            public static function get_obj($param1 = null, $param2 = null){ 
                $obj = new static(); 
                $obj->customFunction(); 
            } 
            public static function getFullName(){ 
                return static::$fullName; 
            } 
        } 
        class Child extends Base { 
            protected static $fullName = 'John Doe'; 
            protected function customFunction(){ 
                echo self::getFullName() . "
"; echo $this; } } Child::get_obj(); ?> </body> </html>

आउटपुट

John Doe
  1. - C# में Virtual vs Sealed vs New vs Abstract

    Virtualvirtual कीवर्ड एक क्लास को ओवरराइड करने की अनुमति देता है। चाइल्ड क्लास में पैरेंट क्लास मेथड को ओवरराइड करने के लिए, पैरेंट क्लास मेथड को virtual घोषित करें।Sealedजब एक क्लास को sealed घोषित किया जाता है, तो इसे इनहेरिट नहीं किया जा सकता, एब्स्ट्रैक्ट क्लास को sealed घोषित नहीं किया जा सकता।

  1. - Python में क्लास मेथड बनाम स्टैटिक मेथड

    Python में क्लास मेथड एक ऐसा मेथड है, जो क्लास से बंधा होता है लेकिन उस क्लास के ऑब्जेक्ट से नहीं। स्टैटिक मेथड्स भी समान हैं लेकिन कुछ बुनियादी अंतर हैं। क्लास मेथड्स के लिए, हमें @classmethod डेकोरेटर निर्दिष्ट करना होगा, और स्टैटिक मेथड के लिए @staticmethod डेकोरेटर उपयोग किया जाता है। क्लास मेथड

  1. - पायथन क्लास में स्टेटिक मेथड्स क्या हैं?

    किसी भी पायथन क्लास में तीन प्रकार के मेथड्स होते हैं: इंस्टेंस मेथड्स, क्लास मेथड्स और स्टेटिक मेथड्स।उदाहरणनिम्न कोड पर विचार करें:class OurClass:\n def method(self):\n return instance method called, self\n @classmethod\n def classmethod(cls):\n return class method called, c