php_lang_ref:classes and objects>>class abstraction
来源:互联网 发布:linux 最好用的输入法 编辑:程序博客网 时间:2024/06/09 23:26
<?php// +----------------------------------------------------------------------// | Perfect Is Shit// +----------------------------------------------------------------------// | classes and objects >> class abstraction// +----------------------------------------------------------------------// | Author: alexander <gt199899@gmail.com>// +----------------------------------------------------------------------// | Datetime: 2016-07-20 15:52:46// +----------------------------------------------------------------------// | Copyright: Perfect Is Shit// +----------------------------------------------------------------------/** * case1:抽象类不能被实例化 * case2:抽象类可以不包含抽象方法,但是如果类中有一个抽象方法,那么这个类必须声明为抽象类 * case3:继承一个抽象类的时候,必须定义抽象类中的所有抽象方法,可见性相同或更为宽松 * case4:抽象方法被子类定义时,方法的调用方式必须匹配,即类型和所需参数数量必须一致 * case5:抽象方法被子类定义时,抽象方法的所有参数必须定义,子类可以多定义可选参数 */namespace case1;abstract class abstractClass{ abstract public function hello();}// 实例化抽象类会产生一个Fatal error# $o = new abstractClass();namespace case2;abstract class abstractClass1{ public function hello(){}}// 含有抽象方法的类没有声明为抽象类,会产生一个Fatal error# class abstractClass2{# abstract function hello();# }namespace case3;abstract class abstractClass{ abstract public function hello(); abstract public function say(); abstract protected function world();}// 没有完全声明父类中的抽象方法会产生一个Fatal error# class classes1 extends abstractClass{# public function hello(){}# }// 下面将protected world定义为private world会产生一个Fatal error# class classes2 extends abstractClass{# public function hello(){}# public function say(){}# private function world(){}# }namespace case4;abstract class abstractClass{ abstract public function hello($name);}class classes extends abstractClass{ // 子类没有定义抽象方法的参数,会产生一个Fatal error # public function hello(){} // 子类定义抽象方法的参数与抽象方法不一致,会产生一个Fatal error # public function hello($name, $e){} // 子类多定义一个可选参数,声明与抽象方法没有冲突 public function hello($name, $e=''){}}namespace case5;abstract class abstractClass{ abstract public function hello($name, $e='', $f='');}class classes extends abstractClass{ // 子类没有定义抽象方法的可选参数$f,会产生一个Fatal error # public function hello($name, $e=''){} // 子类定义抽象方法的参数类型不一样,会产生一个Fatal error # public function hello($name, $e='', $f){} public function hello($name, $e='', $f='', $g=''){}}
0 0
- php_lang_ref:classes and objects>>class abstraction
- php_lang_ref:classes and objects >> object interface
- Classes and Objects
- Defining Classes and Objects
- Classes, Objects, and Methods
- Classes and Objects
- 13 Classes and Objects
- Part 3. Classes and Data Abstraction
- Objects and Classes in Ruby
- Chapter 2 Classes and Objects
- Objects and Classes in Ruby
- OOP (Objects and Classes )
- c++ class and objects
- Classes and class loading
- Magento’s Class Instantiation Abstraction and Autoload
- Classes and Objects in PHP5(1)
- Classes and Objects in PHP5(2)
- Classes and Objects in PHP5(3)
- 走遍中国 —— 铁路交通网
- POJ2769 Reduced ID Numbers[同余]
- 素数判定
- AS插件
- 清除xcode 缓存文件
- php_lang_ref:classes and objects>>class abstraction
- 夏天你吃它了吗?
- 序列的 离散化
- Java内存模型
- OPenGL ES Shader
- ORACLE in-memory parameter
- 稳定排序
- FastReport.net 常用方法
- [AC自动机 DP] BZOJ 1030 [JSOI2007] 文本生成器