Sobes.tech
Junior — Middle

როგორ განსხვავდება აბსტრაქტული კლასი ინტერფეისიდან ობიექტზე ორიენტირებულ პროგრამირებაში?

sobes.tech AI

პასუხი AI-სგან

PHP ۾، مجازي ڪلاس ۽ انٽرفيس هيٺيان فرق رکن ٿا:

  • مجازي ڪلاس ۾ مجازي طريقا (بغير عملدرآمد جي)، گڏوگڏ عملدرآمد وارا طريقا ۽ خاصيتون شامل ٿي سگهن ٿيون.

  • انٽرفيس صرف طريقن جي اعلانن تي مشتمل آهي (PHP 8 کان، ڊفالٽ عملدرآمد شامل ڪري سگھجي ٿو، پر اها هڪ خاصيت آهي)، حالت (خاصيتون) شامل نٿو ڪري.

  • هڪ ڪلاس صرف هڪ مجازي ڪلاس مان وراثت حاصل ڪري سگهي ٿو، پر ڪيترن ئي انٽرفيسن کي لاڳو ڪري سگهي ٿو.

  • مجازي ڪلاس استعمال ٿئي ٿو جڏهن بنيادي عملدرآمد ۽ عام معاهدو مقرر ڪرڻو هجي، جڏهن ته انٽرفيس صرف معاهدو مقرر ڪرڻ لاءِ استعمال ٿئي ٿو.

مثال:

abstract class Animal {
    abstract public function makeSound();
    public function sleep() {
        echo "سُوئي رهيو آهي";
    }
}

interface CanFly {
    public function fly();
}

class Bird extends Animal implements CanFly {
    public function makeSound() {
        echo "چڙچڙ";
    }
    public function fly() {
        echo "اڏامي رهيو آهي";
    }
}

انهيءَ طرح، مجازي ڪلاس جزوي عملدرآمد مقرر ڪري ٿو، جڏهن ته انٽرفيس صرف معاهدو آهي.