PHP

php中abstract和interface有什么区别

小亿
84
2023-11-04 13:49:13
栏目: 编程语言

在PHP中,abstract和interface是两种不同的概念和用法。

  1. abstract(抽象类):

示例代码:

abstract class Animal {
    protected $name;
    
    abstract public function sound();
    
    public function setName($name) {
        $this->name = $name;
    }
}

class Cat extends Animal {
    public function sound() {
        return 'Meow';
    }
}

$cat = new Cat();
$cat->setName('Kitty');
echo $cat->sound(); // Output: Meow
  1. interface(接口):

示例代码:

interface Animal {
    public function sound();
}

interface Pet {
    public function getName();
}

class Cat implements Animal, Pet {
    public function sound() {
        return 'Meow';
    }
    
    public function getName() {
        return 'Kitty';
    }
}

$cat = new Cat();
echo $cat->sound(); // Output: Meow
echo $cat->getName(); // Output: Kitty

综上所述,abstract是用于类的继承和实现的,可以包含具体的方法实现和属性,而interface是用于定义类应该实现的方法,只能包含抽象方法和常量。

0
看了该问题的人还看了