类可以用 abstract 修饰,表示抽象类,抽象类不能直接被实例化。但是,继承了抽象类的普通类是可以被实例化的。如:
//one.php
实例化的时候会报Fatal error的错误。
但是继承自这个抽象类的方法就可以被实例化。如://index.phpinclude 'one.php';class index extends one{ function __construct(){ parent::__construct(); }}$obj = new index;
除了类可以用 abstract 修饰之外,方法也能被 abstruct 修饰,为抽象方法。抽象方法真的是很抽象,它并没有内容,如:
如果方法被 abstruct 修饰,那么这个类必须用abstruct,不然就
会报错。也就是说抽象类可以有普通的方法,但是抽象方法必须在抽象类里面定义,并且,如果继承了这个有抽象方法的抽象类,那么在你继承的这个类里面必须重写这个方法,否则依然会报错。如:但是抽象类中的抽象方法似乎不能被定义为静态的,定义了之后就报错。如:
还有,抽象类是可以继承抽象类的,并且不需要重写父类的抽象方法,它的抽象方法不能和父类的抽象方法同名,他们的关系就像是拓展延伸的关系。如:
由于平时接触这些也不多,主要都是基于框架开发或者直接在其他系统上二次开发,对这些稍微底层一点的知识理解的不透彻,在我的理解看来,抽象类和方法主要是用在比较底层的被继承的类中,供其他继承的类去拓展。但是是否对于性能是否有改变就不大清楚了。