茂名专业做网站,开县集团网站建设,酒店建设网站的意义,项目开发平台抽象类和接口都是不能被实例化的特殊类#xff0c;可以在抽象类和接口中保留公共的方法#xff0c;将抽象类和接口作为公共的基类。 在 中#xff0c;可以使用关键词 abstract 创建一个抽象类#xff0c;语法格式如下#xff1a; abstract class class_name { abstract pu… 抽象类和接口都是不能被实例化的特殊类可以在抽象类和接口中保留公共的方法将抽象类和接口作为公共的基类。 在 中可以使用关键词 abstract 创建一个抽象类语法格式如下 abstract class class_name { abstract public function func_name1(arg1, arg2); abstract function func_name2(arg1, arg2, arg3); } 对抽象类的几点说明 一个抽象类必须至少包含一个抽象方法抽象类中的方法不能被定义为私有的(private)因为抽象类中的方法需要被子类覆盖同样抽象类中的方法也不能用 final 修饰因为其需要被子类继承。 抽象类中的抽象方法不包含方法实体。 如果一个类中包含了一个抽象方法那么这个类也必须声明为抽象类。 比如我们定义一个数据库抽象类有很多种数据库比如 、Oracle、MSSQL 等虽然每种数据库都有不同的使用方法但是对于数据库来说都有一些共同的操作部分比如建立数据库链接、查询数据、关闭数据库链接等。这样我们就能抽象出可适用于不同数据库操作的抽象基类。 如下示例定义一个抽象 Database 类 abstract class Database { abstract function connect($host,$username,$pwd,$db); abstract function query($sql); abstract function fetch(); abstract function close(); function test(){ echo test; } } 下面定义一个 MySQL 类继承自抽象基类 Database。 class mysql extends Database { protected $conn; protected $query; function connect($host,$username,$pwd,$db){ $this-conn new mysqli($host,$username,$pwd,$db); } function query($sql){ return $this-conn-query($sql); } function fetch(){ return $this-query-fetch(); } function close(){ $this-conn-close(); } } 抽象类中的抽象方法必须被子类实现(除非该抽象类的子类也为抽象类)否则会报错抽象类中的非抽象方法可不被子类实现(如示例中的 test() 方法)。非抽象方法必须包含实体抽象方法不能包含实体。