PHP 抽象类 和 interface 接口
静态:
在类里面 定义的变量 在别的地方引用的时候 只要是 静态引用 就一定要加$
普通成员 : 属于对象的
静态成员: 属于类的 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 接口的更多相关文章
- Java abstract 抽象类 和interface接口的异同点
abstract 抽象类 和interface接口的异同点 相同点: 抽象类和接口都不能实例化,他们都位于继承树顶端,被其他类实现和继承 都可以包含抽象方法,实现接口或者继承抽象类的非抽象类(普通类) ...
- 《Beginning Java 7》 - 7 - abstract class 抽象类 和 interface 接口
1. 抽象类: 为什么用抽象类: 一些 generic 的类本身并没有现实意义,所以不需要被实例化.比如动物,自然界没有动物这个物种,但却有无数的继承自动物的物种,那么动物本身可以是一个抽象类. 抽象 ...
- abstract抽象类和interface接口
一.抽象类 1.抽象类不能实例化,因为有抽象方法未实现 2.可以被抽象类或非抽象类继承 3.但不是只能被继承,还可以直接拿来使用的,当然,这个使用是拿来声明,反例如下: public abstract ...
- 抽象类,interface接口,接口和继承的区别
一.抽象类 需要抽象类的原因:父类方法不确定性的问题.考虑将该方法设计为抽象(abstract)方法所谓抽象方法就是没有实现的方法.所谓没有实现就是指,没有方法体.当一个类中存在抽象方法时,需要将该类 ...
- JAVA的abstract修饰符 && 接口interface用法 && 抽象类和interface的差别
abstract修饰符可以修饰类和方法. (1)abstract修饰类,会使这个类成为一个抽象类,这个类将不能生成对象实例,但可以做为对象变量声明的类型(见后面实例),也就是编译时类型.抽象类就相当于 ...
- 抽象类 abstract 和 接口 interface 类的区别
在看一些框架的优秀改良时,都会设计一层base层,并且 base里面一般都是 abstract 类,然后 就找了为什么做的原因.发现: PHP5支持抽象类和抽象方法.抽象类不能直接被实例化,你必须先继 ...
- php部分---面向对象静态、抽象类、oop接口、加载类、魔术方法、关键字。
静态 static关键字 普通成员普通成员是属于对象的 静态成员静态成员是属于类的 普通方法里面可以调用静态成员静态方法里面不能调用普通成员self关键字 在类里面代表该类 普通类class Ren ...
- interface接口
当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口 interface. 定义接口使用的关键字不是class,是interface.接口中常见的成员: 这些成员都有 ...
- JAVA 构造器, extends[继承], implements[实现], Interface[接口], reflect[反射], clone[克隆], final, static, abstrac
记录一下: 构造器[构造函数]: 在java中如果用户编写类的时候没有提供构造函数,那么编译器会自动提供一个默认构造函数.它会把所有的实例字段设置为默认值:所有的数字变量初始化为0;所有的布尔变量设置 ...
随机推荐
- 【C#】C# 队列,
1.队列[先进先走,Dequeue():删除第一个并返回删除的这个],泛型[不确定参数的类型],
- Nginx搭建https服务器
HTTPS简介 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来讲就是HTTP的安全版.即H ...
- redis主从同步
本文是在window环境下的主从同步 1.redis是如何实现主从同步的 redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从) ...
- redshift 調節螢幕色溫 保護眼睛
// install redshift sudo apt-get install redshift // 調節 5000K 色溫 redshift -O 5000 // reset 色溫 redshi ...
- UIDynamic(简单介绍)
一.简单介绍 1.什么是UIDynamic UIDynamic是从iOS 7开始引入的一种新技术,隶属于UIKit框架 可以认为是一种物理引擎,能模拟和仿真现实生活中的物理现象 如:重力.弹性碰撞等现 ...
- Cocos2d-x 3.X 事件分发机制
介绍 Cocos2d-X 3.X 引入了一种新的响应用户事件的机制. 涉及三个基本的方面: Event listeners 封装你的事件处理代码 Event dispatcher 向 listener ...
- BootStrap的一个标准框架的内容解释——来源于bootstrap官网
<!DOCTYPE html><!--HTML5的定义--><html lang="zh-cn"> <head> <meta ...
- R语言排序:sort(),rank(),order()示例
> x<-c(97,93,85,74,32,100,99,67) > sort(x) [1] 32 67 74 85 93 97 99 100 > order(x) [1] 5 ...
- JS复习--更新结束
js复习-01---03 一 JS简介 1,文档对象模型 2,浏览器对象模型 二 在HTML中使用JS 1,在html中使用<script></script>标签 2,引入外部 ...
- Oracle数据库开发
Oracle数据库开发之PL/SQL基础实战视频课程 1 PL/SQL 简介 2 入门实例(一) 3 入门实例(二) 4 PL/SQL 变量和常量 5 PL/SQL数据类型(一) 6 PL/SQL数据 ...