php接口和抽象类的区别-php具体类的作用是什么?

例如:

abstract class Demo
{ 
    var $test; 
    abstract function fun1();
    abstract function fun2(); 
    function fun3(){
        ...
    }
}

登录后复制

3、抽象类的作用是什么?

在上面的反例中,定义了一个具体类“demo”,并用“abstract”进行了修饰。 在这个类中,定义了一个成员属性“$test”,两个具体方法“fun1”和“fun2”以及一个非表征性的方法fun3();

我们如何使用这样的具体类? 最重要的一点是,具体类不能形成实例对象,因此不能直接使用它们。 上面我们多次提到,类不能直接使用。 我们使用通过类实例化的对象。

所以具体类不能形成实例对象。 声明具体类有什么用? 我们使用具体方法作为泛型重载的模板。 定义一个具体类相当于定义一个规范。 这些规范要求泛型违反它。 泛型继承具体类后,根据泛型的需要来实现具体类上的具体方法。 泛型必须实现父类中的所有具体方法,否则泛型中仍然存在具体方法,因此泛型仍然是具体类,无法实例化对象;

抽象类和接口的区别php_抽象类和接口有何不同_php接口和抽象类的区别

为什么我们必须继承具体类? 因为有时候我们想要实现一些功能,就必须继承具体类,否则就无法实现这个功能。 如果继承具体类,则必须在类中实现具体方法;

例如:

<?
abstract class Demo
{
    var $test; 
    abstract function fun1();
    abstract function fun2(); 
    function fun3() {
        ...
    }
} 
$demo=new Demo(); //抽象类不能产生实例对象,所以这样做是错的,实例化对象交给子类
 
class Test extends Demo
{
    function fun1() {
        ...
    } 
    function fun2() {
        ...
    }
} 
$test = new Test(); //子类可以实例化对象,因为实现了父类中所有抽象方法
?>

登录后复制

4、抽象类的特点:

抽象类和接口的区别php_php接口和抽象类的区别_抽象类和接口有何不同

具象类不能被实例化,只能被继承。

具体的类不一定有具体的方法。 具有具体方法的类必须是具体类。

代表性可见性不能是私有的。

泛型中的代表性方法需要重新绘制。

5.什么时候需要使用具体类?

php接口和抽象类的区别_抽象类和接口的区别php_抽象类和接口有何不同

有一个方法。 我不知道如何写技术正文。 当泛型类型中需要这个方法时,将其封装成具体方法,该类就是具体类。

当必须将单独的技术封装在控制泛型中时,可以使用具体的方法。

当需要控制一个只能继承而不能实例化的类时。

6. 接口

如果类中的所有方法都是具体的并且没有成员属性,则该类称为接口。

php接口和抽象类的区别_抽象类和接口的区别php_抽象类和接口有何不同

interface Common{
    abstract function work();
    abstract function test($args);
}

登录后复制

插座扩展:

套接字继承套接字接口套接字名称,扩展父套接字名称。

注意:类的继承是单继承(只能有一个父类)php接口和抽象类的区别,但是socket的继承是多重继承,类对socket的实现也是多重实现。

php接口和抽象类的区别_抽象类和接口的区别php_抽象类和接口有何不同

套接字实现:

类实现套接字类 类名实现套接字名称 1、套接字名称 2、...

继承的类也实现套接字:

类继承父类并实现socket类 类名extends父类名 实现socket名

7. 抽象类和socket的区别

套接字是一个特殊的具体类。 套接字只包含具体的方法,没有成员属性。 当一个类实现一个套接字时,它必须完全实现该套接字中的所有方法;

当一个类继承(扩展)一个具体类时,只需要重绘需要使用的具体方法即可。 具象类只能有单继承,但套接字有多重继承php接口和抽象类的区别,类的套接字实现也有多个实现。