直接上代码
interface Api{
public function index();
public function index2();
}
class A implements Api{
/**
* {@inheritDoc}
* @see Api::index()
*/
public function index()
{
echo "实现子类方法index<Br/>";
}
/**
* {@inheritDoc}
* @see Api::index2()
*/
public function index2()
{
echo "实现子类方法index2<br/>";
}
}
//接口必须要实现所有的方法
$a = new A();
$a->index();
$a->index2();
echo "<hr>";
//抽象父类
abstract class B{
//子类必须实现的抽象方法
public abstract function index();
//子类可以选择重写父类,也可以不用重写
public function index2(){
echo "父类的B_index2<br/>";
}
}
class B_S extends B{
/**
* {@inheritDoc}
* @see B::B_index()
*/
public function index()
{
echo "实现父类的方法B_index<br/>";
}
public function index2(){
echo "重写父类的index2方法";
}
}
$b_s = new B_S();
$b_s->index();
$b_s->index2();
-------------------------------------------------------------------------------------------------------
以下是java代码 基本和php 类继承是一样的
public abstract class BaseController {
protected IModeChangeListener mListener;
public void setIModeChangeListener(IModeChangeListener listener) {
mListener=listener;
}
/**
* @param action 一个页面可能有多个网络请求,用来区别这些请求的
* @param values 请求的数据
*/
public void sendAsyncMessage(final int action,final Object... values){
new Thread(){
public void run() {
handleMessage(action, values);
}
}.start();
}
/**
* 子类处理具体的需求的业务代码
*/
protected abstract void handleMessage(int action,Object... values);
}