欢迎光临
我们一直在努力

PHP关于static静态,abstract 抽象,interface接口

1 static静态

之前看别人的代码经常出现使用static,总是不太明白,虽然大家总是说static的作用是不用实例化就能调用类中的内部成员,但是不实例化它的目的又是什么呢?据我所知是否实例化你总能想到办法调用类中的成员并实现你想要的效果,静态成员最重要的作用是节省内存,因为静态是基于类的,不能通过实例化后的对象来调用。试想,现将一个类实例化一百次调用里面的某个固定的值,这样就需要在内存中开辟出100个空间来存放这个值,但是如果使用静态变量来表示的话就不需要实例化,直接通过类来调用。

2 abstract 抽象

这也是经常遇到的操蛋问题,先说说定义吧!何为抽象?就是不具体的,就像你能明白外国那些傻逼画的什么抽象画?抽象方法在这里就表现为没有实体,具体到代码中为abstract function test();这就是一个静态方法,没有实体!!!!静态类不能直接被使用(因为是里面有没有实体的方法的 原因),需要被其他类继承并重写静态方法之后才能被实例化继续使用,这里说的不能使用是不能实例化使用,类还是可以使用的。

那么抽象方法有什么作用呢?难道仅仅是定义一些方法让继续它的子类必须按照这个规范走吗,理解这个概念要喝接口结合来理解

3 interface接口

接口的概念是很容易理解的了,就是定义一个规范,一个类的模板(接口中的方法也不能有实体),继承(不能这么说)应该是使用它的类必须实现里面定义的所有方法,就这么简单,over!

接口与抽象类不同的地方:

1 继承接口需用implent,继承抽象类需用extends。

2 接口中定义的类必须全部被实现,而抽象类不必。

3抽象类中的抽象方法需用abstract类修饰,接口中不用
相同的地方:1 都不能被实例化使用,因为他们内部都包含没有实体的方法

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » PHP关于static静态,abstract 抽象,interface接口

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址