首先看一下静态成员(static)和普通成员(public; protect; private)的区别:

静态成员是属于类的,普通成员是属于对象的; 例如:

<?php
header("Content-type:text/html;charset=utf-8"); //以防出现乱码 class fenbi
{
public $length;
public static $color;
static function show()
{
echo "粉笔的颜色:" ,self:: $color; //静态成员的表示方法;静态方法里面无法调用普通成员
}
function xianshi()
{
echo"显示:".self::$color; // 普通方法里面可以调用静态成员
} } $f=new fenbi(); //把类实例化
fenbi::$color="蓝色";
$f->show();
$f->xianshi(); //$color无法实例化
?>

其次是抽象类,抽象类关键词是abstract; 特点是:不能被实例化,只能被继承; 目的:为了派生子类,控制子类

<?php

 header("Content-type:text/html;charset=utf-8");

abstract class dog
{
function jiao()
{
echo "汪汪";
}
}
class jinmao extends dog // 用类jinmao继承dog
{
} $d=new dog(); //这个地方这么写是错误的,抽象的类是无法实例化的 ?>

最后是接口,关键词是interface,是极度抽象的类,接口里面不能包含成员变量,只能包含成员方法,成员方法里面可以没有函数体,

实现接口的类,必须实现接口里面的方法  特点: 命名必须以I开头; 方法是没有具体的内容的; 子类继承的时候用关键词 implement ;

子类必须重写所有的接口类(父类)方法;

<?php
header("conten-type:text/html; charset-utf-8") interface IUSB
{
function write(); //接口里面只能放方法;不可以放变量
function read();
} class mouse implements IUSB
{
 function write()
{
echo "点一下鼠标";
}
function read()
{
echo "给鼠标一个指令";
}
  
}
$m=new mouse(); //接口里面的类是可以实例化的
$m->write(); ?>

补充:下午有讲到__tostring/clone的使用方法 以及引用文件等

<?php

class yue
{
function __tostring()
{
return"这是tostring的使用方法";
}
} $y=new yue();
//echo $y; //讲到这里运用tostring可以直接输出$y $x=clone $y;
echo$x //对$y进行了克隆,输出内容和上面一样 ?>

引用文件使用的是include 和 requair 这两种方法,在下一篇随笔会详细介绍着两种方法的区别 以及如何使用

php 静态成员(static)抽象类(abstract)和接口(interface)的更多相关文章

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

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

  2. c#中抽象类(abstract)和接口(interface)的相同点与区别

    相同点: 1.都可以被继承 2.都不能被实例化 3.都可以包含方法声明 4.派生类必须实现未实现的方法 区别: 1.抽象基类可以定义字段.属性.方法实现.接口只能定义属性.索引器.事件.和方法声明,不 ...

  3. Java:抽象类abstract和接口Interface

    一.抽象类:abstract 抽象类就是为了继承而存在的,如果你定义了一个抽象类,却不去继承它,那么等于白白创建了这个抽象类,因为你不能用它来做任何事情.对于一个父类,如果它的某个方法在父类中实现出来 ...

  4. C#中抽象类(abstract)和接口(interface)的实现

    抽象类 抽象方法是没有代码实现的方法,使用abstract关键字修饰: 抽象类是包含0到多个抽象方法的类,其不能实例化.含有抽象方法的类必须是抽象类,抽象类中也可以包含非抽象方法: 重写抽象类的方法用 ...

  5. 【温故知新】c#抽象类abstract与接口interface

    1.什么是抽象类 先来看MSDN对抽象类描述: 抽象类是一些留有部分或全部成员未实现的类,以便可以由派生类来提供实现. 在面向对象的编程中,抽象类用作层次结构的基类,并表示不同对象类型组的通用功能.  ...

  6. C++虚函数virtual,纯虚函数pure virtual和Java抽象函数abstract,接口interface与抽象类abstract class的比较

    由于C++和Java都是面向对象的编程语言,它们的多态性就分别靠虚函数和抽象函数来实现. C++的虚函数可以在子类中重写,调用是根据实际的对象来判别的,而不是通过指针类型(普通函数的调用是根据当前指针 ...

  7. C# 抽象方法及抽象类 Abstract 及接口

    public abstract class Animal { public abstract void Dosth(); } 该类中只有虚方法  那么我们可以用abstract来修饰  将该类称为抽象 ...

  8. python抽象类+抽象方法实现接口(interface)

    #python没有类似于java和C#的接口类(interface),需要使用抽象类 和抽象方法来实现接口功能 #!/usr/bin/env python#_*_ coding:utf-8 _*_ f ...

  9. 虚方法virtual、抽象方法abstract、接口interface区别

    接口.抽象类.抽象方法.虚方法: 这四个名词时非常容易混淆的: 首先说一下接口 与抽象类 的异同: 相同点: 1.他们都不能实例化自己,也就是说都是用来被继承的. 2.抽象类中的抽象方法和接口方法一样 ...

  10. 抽象 abstract 和 接口 interface。 java 的 堆 和 栈。 参数传递(基本类型和普通对象的区别)

    package com.test; import com.test.Pro; //protected 修饰的成员只能在本包中和 继承该类的方法中使用 public abstract class Tes ...

随机推荐

  1. IOs动画的那些事儿

    CoreAnimation介绍 1:Core Animation是直接作用在CALayer上的(并非UIView上)非常强大的跨Mac OS X和iOS平台的动画处理API,Core Animatio ...

  2. 常用的UltraEdit使用技巧

    Tip 1: Alt+C 列模式可以说最初选择使用这个文本编辑软件,原因很简单,就是因为"她"具有列编辑模式.如果您还不知道什么是列编辑模式的话,我想您应该好好研究一下啦.这是一个 ...

  3. jump 转换进制+dp

    from Contest1024 - 省选模拟题14 题目大意 MMM站在x=0的地方,她想跳到x=t的地方.MMM每次跳跃可以选择跳到x - k或者x + k的地方,其中k={base^n | ba ...

  4. netsh配置Windows防火墙(advfirewall)

    有人可能会说,Windows防火墙有非常友好的用户界面,为什么要使用命令行界面来配置一个Windows防火墙?有 个人认为有一下原因(撇开有的人喜欢命令行不喜欢界面的 , o(∩_∩)o 哈哈) Fi ...

  5. Linux内存管理【转】

    转自:http://www.cnblogs.com/wuchanming/p/4360264.html 转载:http://www.kerneltravel.net/journal/v/mem.htm ...

  6. 洛谷——P2658 汽车拉力比赛

    P2658 汽车拉力比赛 题目描述 博艾市将要举行一场汽车拉力比赛. 赛场凹凸不平,所以被描述为M*N的网格来表示海拔高度(1≤ M,N ≤500),每个单元格的海拔范围在0到10^9之间. 其中一些 ...

  7. Android Adapter推荐写法

    package jason.fragmentdemo.adapter; import nqy.fragmentdemo.R; import nqy.fragmentdemo.model.Article ...

  8. openfire Android 学习(四)----单人聊天和多人聊天(发送消息、接收消息)

    一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFriendChat()获取 [java] view plainco ...

  9. 设计模式——介绍与工厂模式(扁平管理模式VS职业经理人模式)

    本文主要对设计模式进行大概解说.特别是对工厂模式进行简明的解析: 一.设计模式的分类 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种:适配器模式. ...

  10. 解决Gradle执行命令时报Could not determine the dependencies of task &#39;:compileReleaseJava&#39;.

    Could not determine the dependencies of task ':compileReleaseJava'. > failed to find target andro ...