PHP में OOP के ट्रेट्स के अमूर्त तरीके

ट्रेट्स में कुछ विधियों को अमूर्त घोषित किया जा सकता है। ऐसे में, उस ट्रेट का उपयोग करने वाले क्लास को ऐसी विधि को कार्यान्वित करना होगा। साथ ही, ट्रेट की अमूर्त विधियाँ निजी नहीं हो सकती हैं।

आइए एक उदाहरण देखें। मान लीजिए कि हमारे पास इस प्रकार का एक ट्रेट है:

TestTrait.php<?php
  trait TestTrait
  {
    public function method1()
    {
      return 1;
    }
    
    abstract public function method2();
  }
?>

मान लीजिए कि हमारा ट्रेट Test क्लास द्वारा उपयोग किया जाता है। ट्रेट में एक अमूर्त विधि की उपस्थिति प्रोग्रामर को क्लास में इसे कार्यान्वित करने के लिए बाध्य करेगी, अन्यथा PHP त्रुटि होगी।

आइए हम Test क्लास को method2 विधि के साथ बनाएँ:

Test.php<?php
  class Test
  {
    use TestTrait; // ट्रेट का उपयोग कर रहे हैं
    
    // अमूर्त विधि को कार्यान्वित करें:
    public function method2()
    {
      return 2;
    }
  }
  
  new Test;
?>
Задание 1

मेरे ट्रेट TestTrait का कोड और मेरे क्लास Test का कोड कॉपी करें। क्लास से method2 विधि को हटा दें। सुनिश्चित करें कि इसके कार्यान्वयन का अभाव PHP त्रुटि की ओर ले जाता है।