静态:

在类里面 定义的变量   在别的地方引用的时候 只要是  静态引用 就一定要加$

普通成员 : 属于对象的

静态成员: 属于类的  static  (通过双冒号调用)

调用静态成员:   ren::$zhongzu=”站点”

函数(方法 ) 也可以 做成静态的  通过 双冒号 调用 格式:  类名::调用的成员

构造方法  做成私有 外界访问不到 类里面   成员不能用   这时可以使用 静态  不需要 初始化   直接用类名 和双冒号  调用

静态成员和普通成员调用时的区别:

静态成员的 调用 可以放在任何位置(普通成员里面可以调用静态成员)

普通成员里不能调用静态成员(原因: 静态方法是属于类的  调用的时候 不需要建立对象  普通成员 是属于对象的 使用前必须建立对象)

self  在类里面 表示该类  (只可以在 类里面用 花括号 内部)

$this  在对象里面表示该对象

class ren
{
public static $name;
public static $age;
function say()
{}
}
class china extends ren
{
function say()
{
echo self::$name."中国人".self::$age;//这里面 既可以用self 也可以用 ren(父类名)---变量名 加$ } }
ren::$name="斗破";//这里面只可以用父类名; 后面的变量名 要加&
ren::$age=18;
$bb=new china();
$bb->say()

static 例题 注意 注解

2.

抽象类:

抽象类 不能被实例化

为了作为父类使用(让子类来继承)

在类前 加一关键字  abstruct  就变成一个抽象 类

抽象类  赋值普通 类赋值一样   只需要 对子类初始化  在子类里面赋值(因为子类可以继承父类的一切)

(子类对父类的方法 进行重写 )

(return)

扩展性好

abstract class YunSuan
{
public $a;
public $b; function Suan()
{
}
} class Jia extends YunSuan
{
function Suan()
{
return $this->a+$this->b;
}
} class Jian extends YunSuan
{
function Suan()
{
return $this->a-$this->b;
}
} class Cheng extends YunSuan
{
function Suan()
{
return $this->a*$this->b;
}
} $jia = new Cheng();
$jia->a=;
$jia->b=;
echo $jia->Suan();

抽象类

3.接口:

关键词: interface        impliments

接口: 极度抽象的类

接口里面方法  没有函数体 只声明函数名

接口定义 (命名 以I 开头)

接口 是作为父类存在的  接口里面出现的方法(控制子类必须实现)

每个子类里面必须实现(实现所有 内容少一个则报错)  (必须写函数名+函数体)

接口相当于  目录(公司规范)

interface IUSB
{
function Read(); //接口里面只声明函数名
function Write();
} class ShuBiao implements IUSB
{
function Read()
{
echo "鼠标插上了";
}
function Write()
{
echo "给鼠标传了数据";
}
} $s = new ShuBiao();
$s->Read();

接口 例题

PHP 抽象类 和 interface 接口的更多相关文章

  1. Java abstract 抽象类 和interface接口的异同点

    abstract 抽象类 和interface接口的异同点 相同点: 抽象类和接口都不能实例化,他们都位于继承树顶端,被其他类实现和继承 都可以包含抽象方法,实现接口或者继承抽象类的非抽象类(普通类) ...

  2. 《Beginning Java 7》 - 7 - abstract class 抽象类 和 interface 接口

    1. 抽象类: 为什么用抽象类: 一些 generic 的类本身并没有现实意义,所以不需要被实例化.比如动物,自然界没有动物这个物种,但却有无数的继承自动物的物种,那么动物本身可以是一个抽象类. 抽象 ...

  3. abstract抽象类和interface接口

    一.抽象类 1.抽象类不能实例化,因为有抽象方法未实现 2.可以被抽象类或非抽象类继承 3.但不是只能被继承,还可以直接拿来使用的,当然,这个使用是拿来声明,反例如下: public abstract ...

  4. 抽象类,interface接口,接口和继承的区别

    一.抽象类 需要抽象类的原因:父类方法不确定性的问题.考虑将该方法设计为抽象(abstract)方法所谓抽象方法就是没有实现的方法.所谓没有实现就是指,没有方法体.当一个类中存在抽象方法时,需要将该类 ...

  5. JAVA的abstract修饰符 && 接口interface用法 && 抽象类和interface的差别

    abstract修饰符可以修饰类和方法. (1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型.抽象类就相当于 ...

  6. 抽象类 abstract 和 接口 interface 类的区别

    在看一些框架的优秀改良时,都会设计一层base层,并且 base里面一般都是 abstract 类,然后 就找了为什么做的原因.发现: PHP5支持抽象类和抽象方法.抽象类不能直接被实例化,你必须先继 ...

  7. php部分---面向对象静态、抽象类、oop接口、加载类、魔术方法、关键字。

    静态  static关键字 普通成员普通成员是属于对象的 静态成员静态成员是属于类的 普通方法里面可以调用静态成员静态方法里面不能调用普通成员self关键字 在类里面代表该类 普通类class Ren ...

  8. interface接口

    当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口 interface. 定义接口使用的关键字不是class,是interface.接口中常见的成员: 这些成员都有 ...

  9. JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac

    记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...

随机推荐

  1. oschina(开源中国)的Git代码托管平台使用教程

    oschina(开源中国)的Git代码托管平台使用教程 第一章 平台介绍 一. Git@OSC简介 开源中国的Git@OSC一个账号最多可以创建1000个项目,包含公有和私有,开源中国代码托管地址:h ...

  2. yii的验证码

    验证码比较麻烦,在三部分各有体现 controller <?php namespace app\controllers\demo_code; use yii\web\Controller; cl ...

  3. Google调用explorer.exe打开本地文件

    给IE浏览器地址栏输个本地文件路径,会自动用explorer.exe打开,这个挺好的,但是IE对jQuery稍微高点的版本不怎么待见,只好自己给Google折腾一个调用explorer的功能----- ...

  4. Alpha阶段测试报告

    测试说明 APP中前后端交互的接口主要有两种,一种是游戏开始前获取信息的HTTP请求接口,这种接口可以看成是静态的,比较简单:另外一种就是游戏过程中进行实时通信的Websocket请求接口,因为这是在 ...

  5. Linux的inode的理解

    文件名 -> inode -> device block 一.inode是什么? 理解inode,要从文件储存说起. 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"( ...

  6. 直接操作 SDL_Overlay YUV叠加上的像素

    根据这篇解码出yuv数据后 海思h264解码库 y,u,v数据全部存进数组内,          IntPtr y = _decodeFrame.pY;                 IntPtr ...

  7. tnt_esri.dat Arcgis8.1安装license

    arcgis8.1授权文件内容,复制个txt重命名为tnt_esri.dat即可.注意替换yourcomputername为你的计算机名   SERVER yourcomputername ESRI_ ...

  8. 关于linux asp.net MVC网站中 httpHandlers配置无效的处理方法

    近期有Jexus用户反映,在Linux ASP.NET MVC网站的Web.config中添加 httpHandlers 配置用于处理自定义类型,但是在运行中并没有产生预期的效果,服务器返回了404( ...

  9. Schema

    Schema约束 1.namespace 相当于schema文件的id 2.targetNamespace属性 用来指定schema文件的namespace的值 3.xmlns属性 引入一个约束,它的 ...

  10. UGUI

    http://www.2fz1.com/post/unity-ugui-recttransform/ //this.transform.position 获取的是世界坐标,而 this.transfo ...