php面向对象知识

来源:互联网 发布:网络金融诈骗判王登科 编辑:程序博客网 时间:2024/05/20 17:58

介绍面向对象基本知识

<?php header("Content-type:text/html;charset=utf-8");//设置字符集// extends关键字用于说明该类继承自某个父类// class NbaPlayer extends Human//类继承类// $jordan = new NbaPlayer();// $jordan->eat("apple"); // 只要是Human类的子类的对象,就可以调用eat方法// extends关键字用于说明该类继承自某个父类class Perfect extends Human{public $name="名字";// 定义属性public $height="高度";// 定义属性    protected $weight; // 只有自身和子类可以访问到    private $age="40"; // private 类型的属性不能被对象外部访问,但是可以在对象内部使用        public static $president="David Stern";// 默认的构造函数,在对象被实例化的时候自动调用    // 构造函数通常用于初始化对象的属性值function __construct($name,$height) {        print "析构函数执行". $name ."\n";    }    // 析构函数在该对象不会再被使用的情况下自动调用    // 析构函数,用于清理程序中使用的系统资源,比如释放打开的文件等等    function __destruct() {       print "构造函数执行" . $this->height . "\n";    }    public function run() {        echo "内部函数\n";    }    public static function changePresident($newPrsdt){        static::$president = $newPrsdt; // self用于表示当前类,"::"操作符用于访问类的静态成员        // static关键字也可以用于访问当前类的静态成员        // echo $this->age . "\n"; // 不能在静态方法中使用this伪变量,也不能用对象的->方式调用静态成员        echo parent::$sValue . "\n"; // parent用于表示父类,可以用于访问父类的静态成员    }    }/** * 接口 * 1. 接口的基本概念和基本使用方法 * 2. 接口里面的方法没有具体的实现 * 3. 实现了某个接口的类必须提供接口中定义的方法 * 4. 不能用接口创建对象,但是能够判断某个对象是否实现了某个接口 * 5. 接口可以继承接口(interface extends interface) * 6. 接口中定义的所有方法都必须是公有,这是接口的特性。 */interface ICanEat {   public function eat($food);}/** * 抽象类 * 1. 抽象类允许类里面的部分方法暂时没有具体实现,这些方法我们成为抽象方法 * 2. 一旦类里面有抽象方法,这个类就必须是抽象类 * 3. 抽象类跟接口一样,不能直接实例化为对象 */// 抽象类前面以abstract关键字开始abstract class ACanEat {   // 没有实现的方法需要设定为抽象方法   // 抽象方法需要在子类中实现    abstract public function eat($food);   public function breath(){      echo "Breath use the air.\n";   }}// Human类实现了ICanEat接口class Human extends ACanEat {   // 跟Animal类的实现是不同的  public function eat($food){    echo "Human eating " . $food . "\n";  }}$a = new Perfect("参数1","参数2");echo "</br>";// 调用对象的某个方法使用的语法是->符号,后面跟着方法的名称和一对括号$a->run();


原创粉丝点击