PHP 多重继承

PHP 多重继承

什么是多重继承

多重继承是面向对象编程中的四个支柱之一,由子类从多个父类中继承特性。

在建立子类和父类之间的关系后,这些类可以重复使用从父类继承的代码,使用多重继承可以提高编译速度,减少开发时间,并提供更高的准确性。

面向对象编程

  1. 面向对象编程(OOP)是一种结构化编程方法,它使用数据和对象而不是函数和逻辑来组织代码块。
  2. 对象: 对象是具有特定特性和功能集的数据字段。
  3. 面向对象编程主要关注开发人员创建的数据对象,而不是关注操纵对象所需的逻辑。
  4. 这种编程类型非常适用于具有非常复杂的数据,需要定期更新或彻底维护的程序。
  5. 面向对象编程的一些其他优势包括代码可重用性、可扩展性和效率。
  6. OOP的主要原则包括:
  • 数据封装
  • 数据抽象
  • 继承
  • 多态性

PHP中的多重继承

PHP没有多重继承的属性,但我们仍然可以通过使用PHP提供的界面或特征和类来使用多重继承。

特征和接口是单一继承的编程语言(如PHP)的特殊特性,无法实现多重继承。特征帮助开发人员减少PHP的单一继承属性的限制,并在层次结构中不同的类中自由重用代码。特征与类几乎相似,但它们一直以一致的功能组合在一起,不同于类。由于无法单独初始化特征,因此必须在类中使用。我们可以说特征是一种类的类型,通过同时使用多个特征,帮助开发人员实现多重继承。

特征(使用类和特征)

语法:

Class parent - class {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

Trait - name {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .

}

Class child - class extends parent - class {
  use trait - name;
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

示例:

<?php
class parentClass {
  public function parentFunction() {
     echo " Hello this is a parent class ";
  }
}

trait forParentClass {
  public function traitFunction() {
     echo " and this is trait ";
  }
}

class childClass extends parentClass {
   use forParentClass;
   public function childFunction() {
      echo " this is the child class which inherit parent using trait ";
  } 
}

obj  =  new childClass(); obj  -> parentFunction();
obj  -> traitFunction(); obj  -> childFunction();
?>

输出:

PHP 多重继承

在以上程序中,我们有一个包含容量 父类函数() 的父类,并且我们有一个名为 父类 的质量,它持有名为 路径函数() 的容量。最终,我们有一个名为子类的青年类,其具有 子类函数() 的工作,并通过使用条件获得了父类的质量。此外,为了访问类和质量,我们创建了一个名为obj的对象,并使用相同的对象调用每个函数。

特征(使用多个特征)

除了使用类与特征,还有一种使用多重继承的方法是使用多个特征。

语法:

Trait first - trait {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

Trait second - trait {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .

}

Class child - class e {
  use first - trait;
  use second - trait;
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

示例:

<?php

trait firstTrait {
  public function firsttrait() {
     echo " Hello this is a trait ";
  }
}

trait forFirstTrait {
  public function secondtrait() {
     echo " and this is second trait ";
  }
}

class childClass {
   use firstTrait;
   use forFirstTrait;
   public function childFunction() {
      echo " this is the child class which inherit parent traits ";
  } 
}

obj = new childClass(); obj -> firsttrait();
obj -> secondtrait(); obj -> childFunction();
?>

输出:

PHP 多重继承

接口(使用类和接口)

语法:

Class parent - class {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

Interface interface - name {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .

}

Class child - class extends parent - class impliments interface - name {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

示例:

<?php

class parentClass {
   public function parentFunction() {
    echo "this is parent class";
     }
}

interface firstInterface {
   public function interfaceFunction();
}

class childClass extends parentClass implements firstInterface {

    function interfaceFunction() {
        echo " this is interface ";
    }

    public function childFunction() {
    echo " this is an inherited child class using an interface ";
    }
}

obj = new childClass(); obj -> parentFunction();
obj -> interfaceFunction(); obj -> childFunction();
?>

输出:

PHP 多重继承

在上述程序中,我们有一个包含容量父函数()的父类。我们有一个名为第一个接口的交互点,它包含名为接口函数()的容量。我们无法在我们创建的连接点内部特征化宣布函数,并且我们需要在子类内部特征化宣布函数。最终,我们有一个名为child class的子类,它具有child function()的功能,并使用PHP的extends和implements属性从交互点继承功能。此外,我们在子类中定义了我们的interface function()。此外,为了访问类和交互点,我们创建了一个名为obj的对象,并使用相同的对象调用了所有的函数。

接口(使用多个接口)

语法:

Interface first - interface {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

Interface second - interface {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .

}

Class child - class implements first - interface, second - interface  {
  Statement . . .
  . . . . . . . . 
  . . . . . . . .
}

示例:

<?php

interface firstInterface {
   public function interfaceone();
}

interface secondInterface {
   public function interfacetwo();
}

class childClass implements firstInterface, secondInterface {

    function interfaceone() {
        echo "this is the first interface";
    }

    function interfacetwo() {
        echo "this is the second interface";
    }

    public function childFunction()
    {
        echo "this is a child inherited from both interfaces";
    }
}

obj = new childClass();obj->interfaceone();
obj->interfacetwo();obj->childFunction();
?>

输出:

PHP 多重继承

在上面的程序中,我们声明了两个交互点,第一个是与名为 第一个接口 的工作 interface one() 相互作用,第二个是与名为 第二个接口 的工作 outerfacetwo() 相互作用。 最后,我们有一个名为 子类 的子类,其中工作 child function() ,并利用执行提供程序获得了两个交互点的信息。 我们在功能内部给出了接口中声明的功能的含义。 此外,为了访问类和交互点,我们创建了一个名为obj的对象,并使用相同的对象调用了所有的函数。 我们只声明了连接点功能,将在子类中定义相同的功能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程