22
2014-02

抽象类中的抽象方法在子类继承后不能执行,如何解决?

虽然做了已经快两年的PHP,但是经过一些面试,发现自己对于某些概念性问题还是不是太清楚,模棱两可,容易混淆,所以下定决心,把自己模糊的概念给搞清楚,就自己动手写一些抽象类方法。

首先,如果你要定义一个抽象类(abstract),在抽象类中写入抽象方法,然后再写一个子类继承该抽象类,再在该子类中写入非抽象方法。运行之后,会输出致命性的错误,如何调试,看一下代码:

<?php
header("content-type:text/html; charset=utf-8;");//如果你的文件编码是utf-8的,最好加上这一句
abstract class test {//定义一个抽象类
//  abstract function check() {//抽象类放法无法执行,如果解开本注释,会提示一下错误!
    //Fatal error: Abstract function test::check() cannot contain body in D:\wamp\www\mytest\abstractclass.php on line 7
    function check() {//非抽象类方法可继承执行
        echo "我是test父类的check方法";
    }
}
    
class aa extends test {//定义一个子类,继承test抽象类
    function check() {//定义一个check方法,这是一个非抽象方法,可以调用输出
        echo "我是test继承类的方法输出";
    }
}
$zilei=new aa();
$zilei->check();
?>

除非注明,文章均为史亚永原创,欢迎转载!转载请注明本文地址,谢谢。

本文地址:http://www.shiyayong.cn/post/252.html

评论列表:

9  网赚论坛  2014-12-12 13:36:44 回复该留言  IP:221.203.171.160
抽象 和毕加索有点像
网赚论坛
8  动漫那点事  2014-3-12 15:54:45 回复该留言  IP:116.6.42.70
对这些只能支持,看不懂
动漫那点事
7  松林blog  2014-3-11 9:05:49 回复该留言  IP:119.57.64.187
抽象类当然需要抽象方法、你语法错了、
abstract function check(); 少了分号、没有大括号。
  茶馆老板  2014-5-29 21:39:50 回复该留言  IP:106.120.181.131
还是代林是高手啊,哈哈
茶馆老板
松林blog
6  屠龙  2014-3-10 13:20:57 回复该留言  IP:110.247.179.209
代码说简单简单 说复杂就复杂
屠龙
5  夏日博客  2014-2-28 9:43:48 回复该留言  IP:124.200.223.71
看这文章,你技术是越来越厉害了。
  茶馆老板  2014-5-29 21:36:41 回复该留言  IP:106.120.181.131
没有的了,技术一般啦,不知道你怎么样?
茶馆老板
夏日博客
4  cervelo  2014-2-27 11:22:49 回复该留言  IP:61.241.200.213
真的好抽象。。。
cervelo
3  heyuan  2014-2-26 15:32:02 回复该留言  IP:118.122.93.3
说的很好啊。欢迎回访
heyuan
2  烂番茄网  2014-2-25 17:47:34 回复该留言  IP:114.246.154.119
抽象啊。。
  茶馆老板  2014-5-29 21:31:44 回复该留言  IP:106.120.181.131
你懂什么叫抽象类?
茶馆老板
烂番茄网
1  烂番茄网  2014-2-25 17:37:41 回复该留言  IP:114.246.154.119
可以哟。。哈哈!
烂番茄网

发表评论:

(设置个性头像)

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

无觅相关文章插件,快速提升流量