php面向对象中的静态与抽象,接口

静态又包括:
    普通成员:
    普通成员是属于对象的
    静态成员:
    静态成员是属于类的

关键字:static
self关键字:在类里面代表该类,前面不用加$
在静态方法里面不能调用普通成员
在普通方法里面能够调用静态

例:
class FenBi
{
    public $length;            粉笔的长度
    public static $color;          粉笔的颜色

    static function show()
    {
        echo "粉笔颜色是:".self::$color;
    }

    function XianShi()
    {
        echo "显示:".self::$color;
    }
}

$f = new FenBi();      先造一个对象
$f->length;      用对象去调用普通成员

FenBi::$color = "红色";     使用类名调用静态成员
FenBi::show();
$f->XianShi();
抽象
抽象类关键字abstract
特点:不能被实例化,只能被继承
目的:为了派生子类,控制子类

abstract class Dog
{
    public $name;

    function Jiao()
    {
        echo "汪汪";
    }
}

class JinMao extends Dog
{

}

$d = new Dog();
接口:
极度抽象的类
接口里面不能包含成员变量,只能包含成员方法
成员方法可以没有函数体
接口关键字:interface
实现接口的类,必须实现接口里面的所有方法

interface IUSB
{
    function read();       读的方法
    function write();       写的方法
}

鼠标的驱动类
class Mouse implements IUSB
{
    function read()
    {
        echo "鼠标点击了";
    }
    function write()
    {
        echo "给鼠标一个指令";
    }
}

键盘的驱动类
class JianPan implements IUSB
{
    function read()
    {
        echo "键盘输入了内容";
    }
    function write()
    {
        echo "给键盘指令";
    }
}

$m = new Mouse();
$m->write();

$j = new JianPan();
$j->read();

API接口为常用接口
时间: 2024-10-09 22:08:20

php面向对象中的静态与抽象,接口的相关文章

PHP中静态与抽象的概念

静态//普通成员//普通成员是属于对象的 //静态成员//静态成员属于类的 类中的静态属性非常类似于函数的全局变量.类中的静态成员是不需要对象而使用类名来直接访问的. //关键字:static//self关键字:在类里面代表该类(代表自身)//在静态方法里面不能调用普通成员//在普通方法里面能够调用静态成员 /*class FenBi{ public $length; //粉笔的长度 public static $color; //粉笔的颜色  static function show() { 

面向对象中的接口和多态

接口的作用是用来制定规范,以便让后面的程序根据这个规范来实现. 接口的声明方式:interface 接口名{},接口只能声明抽象方法,至少要有一个,但是声明的抽象方法前不需要用abstract修饰. 声明一个类实现接口,class demo implements interface_name {},当一个类实现接口的时候,这个类必须实现接口里定义的所有抽象方法.一个类可以既同时继承一个类又实现多个接口,class demo2 extends demo implements interface1,

面向对象 继承 抽象接口

子类继承父类,通过在类后面加冒号来继承某个类一旦形成继承关系后,子类的对象就能够使用父类中的公共属性和方法函数子类能够转换成父类,但父类不一定能够转成子类只有当父类对象是由某个子类对象转换来的时候,才能再把父类对象转换回去,从哪个子类来的,就只能再转回那个子类去直接通过父类的构造函数构建的对象, 不能转换为子类对象当子类中重写了跟父类同名同参数的方法之后,通过哪个类的对象点出来的方法,对应就是那个类里面的方法内容 重写的方法,如果在父类中加virtual 在子类中加override之后,当从子类

interface,abstract class,abstract interface Java中的接口,抽象类和抽象接口的异同

接口与抽象类的比较 1.相同点: A. 两者都是抽象类,都不能实例化. B. interface实现类及abstrct class的子类都必须要实现已经声明的抽象方法. 2. 不同点: A. interface需要实现,要用implements,而abstract class需要继承,要用extends. B. 一个类可以实现多个interface,但一个类只能继承一个abstract class. C. interface强调特定功能的实现,而abstract class强调所属关系. D.尽

[麦先生]PHP面向对象中常见的魔术方法以及关键字

麦先生引言:在学习php面向对象的编程思想中,我们会遇到很多的能够自动调用的魔术方法,每个魔术方法都有其特定的触发场景,但其根本目的是在于编写和实际使用过程中阻止程序报错而生; 常见的魔术方法有:music=> gusic(根据首字母拼音大写由gusic联想到music)    以及构造,析构方法,以及特殊的关键字fsci -- cats 和 ai 魔术方法                触发场景 <!--gusic---------------------------------------

面向对象_多态_抽象类_接口

09.01_面向对象(多态的概述及其代码体现) A:多态(polymorphic)概述 事物存在的多种形态 B:多态前提 a:要有继承关系. b:要有方法重写. c:要有父类引用指向子类对象. C:案例演示 代码体现多态 public class Demo1_polymorphic { /** * 成员变量:编译时看左边(父类),运行时看左边(父类) * 成员方法:编译时看左边(父类),运行时看右边(子类) * @param args */ public static void main(Str

第05章(面向对象——中)

1 /***************** 2 ***第五章面向对象(中) 3 *******知识点: 4 **************1.多态 5 ******************1.1 概念 6 ******************1.2 实现方式 7 **************2.抽象类 8 ******************2.1 关键字 9 ******************2.2 概念定义 10 ******************2.3 使用 11 ************

Java 中的 I/O 抽象

Table of Contents 前言 字节流 常用实现 字符流 常用实现 缓冲区 各种字节流 结语 前言 由于在接触 Java 之前使用的语言是 Python,所以在转到 Java 后对 Java 的 I/O 操作各种不习惯. 研究后发现 Java 的 I/O 模型和 Python 的基本上还是一样的,只是在接口的设计上有些区别,主要是为了符合 OOP 的思想吧. 这篇博客的主要内容便是和 Java I/O 相关的总结. 字节流 和 Python 一样,Java 中最底层的 I/O 接口处理

PHP 面向对象中常见关键字使用(final、static、const和instanceof)

PHP 面向对象中常见关键字的使用: 00x1.Final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用final标识的成员方法,在子类中不能覆盖. 总结:final表示为最终的意思,所以使用final关键字的类或者类中的成员方法是不能被更改的. 00x2.Static :static关键字将类中的成员属性或者成员方法标识为静态的,static标识的成员属性属于整个类,static成员总是唯一存在的,