静态和抽象

类里面的成员有静态成员和普通成员

静态成员赋值取值

	<?php
		class FenBi{
			public $lenth;//普通成员变量属于对象
			public static $color;//静态成员关键字static属于类
		}
		FenBi::$color = "红色";//给静态成员赋值
		FenBi::$color;//静态成员取值
    ?>

 普通成员赋值取值

	<?php
		class FenBi{
			public $lenth;//普通成员变量属于对象
			public static $color;//静态成员关键字static属于类
		}
		FenBi::$color = "红色";//给静态成员赋值
		FenBi::$color;//静态成员取值
		$f = new FenBi();//实例化
		$f->lenth = "15CM";
    ?>

 静态方法

	<?php
		class FenBi{
			public static function test(){//静态方法关键字
				echo"这是静态方法";
			}
		}
		FenBi::test();
    ?>

 静态方法里不能有普通成员(普通成员调用需要实例化,静态方法不需要实例化)

普通方法里可以有静态成员

	<?php
		class FenBi{
			public $lenth;
			public static $color;
			public  function test(){
				echo "颜色为".FenBi::$color;
			}
		}
		FenBi::$color = "红色";
		FenBi::$color;
		$f = new FenBi();
		$f->test();
    ?>

 静态方法实例

	<?php
		class A{
			public  function chuanzhi(){
				B::$b = "张三";
			}
		}
		class B{
			public static $b;
		}
		$a = new A();
		$a->chuanzhi();
		echo B::$b
    ?>

 构造函数方法

	<?php
		class A{
			public  function chuanzhi(){
				var_dump(new B("张三"));
			}
		}
		class B{
			public  $b;
			public function __construct($b){
				$this->b = $b;	
			}
		}
		$a = new A();
		$a->chuanzhi();
    ?>

 抽象

抽象类:类本身就是抽象的,抽象类就是更加抽象的类,无法直接实例化对象,主要作为父类存在可以派生子类。

抽象方法:抽象的一个方法,不能直接调用主要用来让子类事项

              子类继承父类的抽象方法,不过子类不重写,那么子类必须为抽象类。

	<?php
		abstract class Ren{
			public abstract function test();//抽象方法不需要加{}
		}
		class china extends Ren{
			public function test(){
				echo "方法重写";
			}//重写抽象类方法
		}
		$a = new China();
		$a->test();
    ?>

 抽象类里可以有抽象方法和普通方法

接口

里面只能有抽象方法,不能有别的

接口是极度抽象的类

接口有面向对象的接口和API:网络数据接口。

	<?php
		interface USB{
			public function read();
			public function write();
		}//面向对象的接口关键字interface
		class ShuBiao implements USB{//关键字不再是extends  关键字是implements
			function read(){
				echo"鼠标插入<br>";
			}
			function write(){
				echo"正常使用";
			}
		}
		$a = new ShuBiao();
		$a->read();
		$a->write();
    ?>
原文地址:https://www.cnblogs.com/navyouth/p/8250310.html