3

php中抽象类和接口的对比

 3 years ago
source link: https://www.80shihua.com/archives/2648
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

php中抽象类和接口的对比

抽象类是至少具有一个抽象方法的类。继承抽象类的类需要实现抽象方法。不能通过抽象类创建对象,需要通过抽象类的继承类来创建对象。

对方法的抽象叫做接口。通俗点说,就是接口内的方法必须都是抽象方法。

接口的使用

接口的目的是对类进行约束,我们在开发设计的时候,如果我们想要某个类具有某些功能的话,我们就可以设计出接口,让后让其他人写的类实现我们的接口,那么我们就可以调用我们接口中的抽象方法,因为实现接口的类一定要实现接口的方法。

抽象类的使用

接口的目的是对类的功能进行约束,那么抽象类的作用更多在于复用,也就说有些方法是公用的,我们没有必要在类a中写一遍,让后在类b中写一遍,我们只要定义一个抽象类,然后a和b都继承这个抽象类,那么他们都可以直接调用这个抽象类中实现好的方法。

并且因为a和b在对同一个方法有不同的实现,这个方法就可以定义位抽象方法,让后a和b自己去实现不同的方法。可以看到抽象类既给子类提供了一些功能,有允许子类去实现自己的功能,这就是抽象类的作用。

抽象类和接口的区别

  • 在抽象类中,不必每个方法都应该抽象。但是在接口中,每种方法都是抽象的。

  • php接口的方法必须是公共的,默认情况下不能将访问修饰符假定为公共。在方法抽象的PHP类可以是公共或保护两者。

  • 接口支持多重继承,但抽象类不支持多重继承.

  • 接口不能包含构造方法,但抽象类可以包含抽象方法。

  • 接口没有成员变量,但是抽象类有成员变量。


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK