php中抽象类和方法知识点
来源:互联网 发布:淘宝店铺点券充值 编辑:程序博客网 时间:2024/05/08 09:57
<?php/**1.定义为抽象的类不能被实例化,2.任何一个类如果它里面至少有一个方法是抽象的那么这个方法也必须声明为抽象的。3.子类继承一个抽象父类时,子类必须定义父类中的所有的抽象方法,而且访问控制符必须和父类一样(或者更为宽松)4.被定义的抽象方法只是声明了其调用方式(参数),不能具体的功能实现*//*错误的,因为类中如果有抽象方法,那么这个类也必须声明为抽象的class A{abstract function get();}*/abstract class AbstractClass{//public abstract function abs();如果加上这一句,就会出现错误,因为下面的子类没有实现父类中的这个抽象方法。protected abstract function getValue();protected abstract function prefixValue($prefix);public function printOut(){print $this->getValue()."<br>";}}class ConcreteClass1 extends AbstractClass{protected function getValue(){return "ConcreteClass1";}public function prefixValue($prefix){return "{$prefix} ConcreteClass1";}}class ConcreteClass2 extends AbstractClass{public function getValue(){return "ConcreteClass2";}public function prefixValue($prefix){return "{$prefix} ConcreteClass2";}}class ConcreteClass3 extends AbstractClass{/*错误,子类的访问修饰符必须必父类的宽松或者一样,但是不能更小。private function getValue(){echo "a";}*/public function getValue(){}public function prefixValue($prefix){return "$prefix";}}//$a = new AbstractClass(); 报错,抽象类不能被实例化$class1 = new ConcreteClass1();$class1->printOut();echo $class1->prefixValue('Foo');?><?phpabstract class AbstractClass{protected abstract function prefixName($name);}class ConcreteClass extends AbstractClass{//子类可以定义父类中不存在的参数,就是方法重写(覆盖)public function prefixName($name, $separator ="."){if($name == "Pacman"){$prefix ="MR";}else if($name =="Pacwoman"){$prefix ="mrs";}else{$prefix ="";}return $prefix.$separator.$name;}}$class = new ConcreteClass();echo $class->prefixName("Pacman")."<br>";echo $class->prefixName("pacwoman");?>
0 0
- php中抽象类和方法知识点
- php中抽象类和抽象方法的特点
- PHP中抽象方法、抽象类和接口的用法
- PHP抽象类和抽象方法
- php抽象类和抽象方法
- Php抽象类和抽象方法
- PHP抽象类和抽象方法
- php抽象类和方法
- php 中抽象的方法和抽象类的定义 abstract
- php面向对象(OOP)—抽象方法和抽象类
- PHP程序中的抽象方法和抽象类
- php中构造方法知识点
- 谈《Java中抽象类,抽象方法,重载和覆盖》
- java中抽象方法和抽象类实现模版模式
- Java中抽象类和抽象方法的区别
- Java中抽象类和抽象方法的区别
- Java中抽象类和抽象方法的区别 ---------------
- 抽象类和抽象方法
- [Cocoa]深入浅出Cocoa之类与对象
- 由于应用程序配置不正确,未能启动此应用程序
- POJ 1179 Polygon(动态规划:类似环形石子合并)
- BROADCOM(博通)样片申请与经验
- LeetCode 23 Swap Nodes in Pairs
- php中抽象类和方法知识点
- glViewport()函数和glOrtho()函数的理解
- 一步一步完成cocos2dx 2.2 的Android交叉编译
- HelloLua 讲解
- SQL Server 数据导入Mysql详细教程
- LeetCode 34 Search Insert Position
- 最简单的js css Tab 演示
- Forms身份验证基本原理
- 接口的知识点