Difference between abstract class and interface in hindi
Answers
Difference between Abstract Class and Interface – PHP एक Pure Object Oriented Programming / Scripting Language नहीं है। इसमें तीन Concepts Operator Overloading, Function Overloading व Multiple Inheritance को Implement नहीं किया जा सकता। लेकिन जावा की तरह ही PHP में Interface को Implement किया जा सकता है।
Interface वास्तव में Indirectly Multiple Inheritance की सुविधा देते हैं। हालांकि Interface पूरी तरह से Multiple Inheritance के सभी Features को Support नहीं करते, लेकिन फिर भी कुछ हद तक हम Multiple Inheritance जैसी सुविधा Interfaces द्वारा प्राप्त कर सकते हैं।
Interface वास्तव में एक तरह की Pure Abstract Class होती है, जिसके सभी Data Members Constant होते हैं, जबकि सभी Methods Unimplemented होते हैं। यानी Interface के सभी Methods की Interface की Body में केवल Declaration होती है और हम किसी भी Method का Definition Interface में Specify नहीं कर सकते।
इसी तरह से हम किसी Interface में Member Variable Declare नहीं कर सकते। Interface में हम केवल Constants को ही Declare कर सकते हैं, जिन्हें Class के अन्दर self:: Expression द्वारा Access किया जा सकता है, जहां self Current Class को Refer करता है। जबकि Constants को बिना किसी तरह का Access Specify किए हुए Directly Specify करना होता है।
Interface को Exactly Class की तरह ही Create व Extend किया जाता है। अन्तर केवल इतना है कि Class के Methods को हम हमारी जरूरत के अनुसार किसी भी Access Scope Specifier के साथ Declare कर सकते हैं, लेकिन Interface के सभी Members को Public रखना जरूरी होता है। किसी Interface को Create करने के लिए हमें निम्न Syntax को Follow करना होता हैः
interface IinterfaceName {
const constantNames = Value;
public methodNames();
}