PHP 面向对象的特性 抽象类和接口详解编程语言

PHP 面向对象的特性 抽象类和接口

先看下普通的类的实现和重写 

<?php 
header("Content-type:text/html;charset=utf-8"); 
 
class P 
{ 
    public $age; 
    public $name = "我叫张三"; 
    public function __construct() 
    { 
        $this->age = '初始化'; 
    } 
    public function action() 
    { 
        return '我要吃饭'; 
    } 
 
} 
 
class C extends P 
{ 
    public $age; 
    public function __construct() 
    { 
 
        $this->age = '重新初始化'; 
 
        //如果想继续用父类的构造函数 不重写 
        // parent::__construct(); 
    } 
 
    public $name = "其实我是李四"; 
    public function action() 
    { 
        return '其实我要睡觉了'; 
    } 
 
} 
 
 
 
 
$o = new P; 
 
echo $o->age; 
echo '</br>'; 
echo $o->name; 
echo '</br>'; 
echo $o->action(); 
 
echo '</br>'; 
echo '</br>'; 
echo '</br>'; 
 
$o = new C; 
 
echo $o->age; 
echo '</br>'; 
echo $o->name; 
echo '</br>'; 
echo $o->action();

然后说下接口(作用就是 写的类必须实现 接口中的方法 其实就是实现类方法的规范)

<?php
header(“Content-type:text/html;charset=utf-8”);

interface P
{
public function action();

}

class C implements P
{
public function action()
{
return ‘我要睡觉了’;
}

}

class A extends C
{

public function action()
{
return ‘其实我要睡觉了’;
}
}

$o = new C;

echo $o->action();

echo ‘</br>’;
echo ‘</br>’;

$o = new A;

echo $o->action();

 抽象类 你可以把他当成个类使用(他的abstract方法必须实现 跟interface一样)

<?php 
header("Content-type:text/html;charset=utf-8"); 
 
abstract class P 
{ 
    abstract public function action(); 
    public function action11() 
    { 
        return '1111111'; 
    } 
} 
class C extends P 
{ 
    public function action() 
    { 
        return '啊啊啊啊'; 
    } 
    public function action11() 
    { 
        return '3333333333'; 
    } 
 
} 
 
$o = new C; 
 
echo $o->action11(); 
 
echo '</br>'; 
echo '</br>';

 ps:抽象类和接口都不能直接实例化  不用多继承的情况下 抽象类比较好用

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/19021.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论