<?php
abstract class abs_db{//抽象类
abstract protected function connect();//数据库连接
abstract protected function select_db();//选择数据库
abstract protected function setchar();//字符设置
abstract protected function query();//查询
abstract protected function getAll(); //取出查询的一部分
abstract protected function getOne();//取出查询的一个
abstract protected function error();
}
class mysql extends abs_db{
}?>以上代码出现报错提示Class 'mysql' must implement inherited abstract method
'error(...)' 请问这是什么原因,怎么解决?我用的编译器是zend studio 9.0.3 版本。
abstract class abs_db{//抽象类
abstract protected function connect();//数据库连接
abstract protected function select_db();//选择数据库
abstract protected function setchar();//字符设置
abstract protected function query();//查询
abstract protected function getAll(); //取出查询的一部分
abstract protected function getOne();//取出查询的一个
abstract protected function error();
}
class mysql extends abs_db{
}?>以上代码出现报错提示Class 'mysql' must implement inherited abstract method
'error(...)' 请问这是什么原因,怎么解决?我用的编译器是zend studio 9.0.3 版本。
protected function connect(){}
protected function select_db(){}
protected function setchar(){}
protected function query(){}
protected function getAll(){}
protected function getOne(){}
protected function error(){}
}
用abstract定义的类不能被实例化。有一个函数为abstract的类,这个类就必须是abstract,子类必须
定义所有的父类中的abstract函数,子类中函数的作用域只能被扩大,不能缩小。
abstract class abs_db{//抽象类
protected function connect();//数据库连接
protected function select_db();//选择数据库
protected function setchar();//字符设置
protected function query();//查询
protected function getAll(); //取出查询的一部分
protected function getOne();//取出查询的一个
protected function error();
}
class mysql extends abs_db{
}?>
我改成了这样,就没报错了,但是这样抽象类里边的函数还是抽象函数么?这会影响效果么
例如:abstract class A{
funcA();
}那么你在子类中就得把这个funcA的内容具体写出来B extends A{
funcA(){
//具体funcA要做的事情必须得实现出来
}}