静态:

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

普通成员 : 属于对象的

静态成员: 属于类的  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. 吉特仓库管理系统-.NET打印问题总结

    在仓储系统的是使用过程中避免不了的是打印单据,仓库系统中包含很多单据:入库单,出库单,盘点单,调拨单,签收单等等,而且还附带着很多的条码标签的打印.本文在此记录一下一个简单的打印问题处理方式.处理问题 ...

  2. powerdesigner-从excel导入table模型

    近在使用pd过程中,遇到一个问题,就是类的字段,方法,类型在excel中整理好了,想导入到pd直接生成类图.网上有很多生成实体表的方法,于是自己模仿写了一个生成类图的,在pd中的工具--扩展--脚本, ...

  3. 自己积累的一些Emgu CV代码(主要有图片格式转换,图片裁剪,图片翻转,图片旋转和图片平移等功能)

    using System; using System.Drawing; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; na ...

  4. Eclipse使用快捷键代码格式化有时失效解决办法

    今天写代码的时候发现使用快捷键格式化代码没用了. 首先,先看看自己手动格式化是否还行 右键 - Source - Format 结果:正常! 既然手动正常的话那就可能是这个快捷键的热键被占用了,然后我 ...

  5. sublime text 3 3114 注册码

    -– BEGIN LICENSE -– Michael Barnes Single User License EA7E-821385 8A353C41 872A0D5C DF9B2950 AFF6F6 ...

  6. MySQL索引背后的数据结构及算法原理

    摘要 本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题.特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数据库支持多种索引类型,如BT ...

  7. Xcode6 管理provisioning profile

    profile文件的存放位置为 /Users/用户名/Library/MobileDevice/Provisioning Profiles 更新profile文件后,Code Signing Iden ...

  8. ionic browser+ios头部高度显示问题

    ionic项目在使用ionic build browser或者打包ios时如果设置头部高度 方法如下 .bar-header { padding:; height:; } .scroll-conten ...

  9. 图解JVM字节码执行引擎之栈帧结构

    一.执行引擎      “虚拟机”的概念是相对于“物理机”而言的,这两种“机器”都有执行代码的能力.物理机的执行引擎是直接建立在硬件处理器.物理寄存器.指令集和操作系统层面的:而“虚拟机”的执行引擎是 ...

  10. 扼杀 304,Cache-Control: immutable

    随着近些年社交网站的流行,越来越多的人学会了“刷”网页 ── 刷微博,刷朋友圈,刷新闻,刷秒杀页.这里的“刷”,就是刷新的意思,在浏览器里,你可以通过点击刷新按钮,或者用快捷键,或者移动端的下拉操作来 ...