首页 > 编程语言 >PHP8面向对象快速入门五 接口 抽象类

PHP8面向对象快速入门五 接口 抽象类

时间:2024-09-06 17:17:19浏览次数:13  
标签:function makeSound 接口 public 面向对象 PHP8 Animal 抽象类 eat

在 PHP 中,接口是一种定义方法但不实现它们的方式。接口可以被类实现,使得这些类承诺实现接口中定义的所有方法。接口主要用于定义类的共同行为,而不涉及具体的实现细节。以下是 PHP 接口的基本用法:

定义接口

interface Animal {
    public function makeSound();
    public function eat();
}

现在,Animal 接口定义了两个方法:

  1. makeSound():用来让动物发出声音。
  2. eat():用来描述动物进食的行为。

实现接口的类

你需要在实现了 Animal 接口的类中提供这两个方法的具体实现:

phpCopy Code
class Dog implements Animal {
    public function makeSound() {
        echo "汪汪";
    }
    
    public function eat() {
        echo "狗在吃食物";
    }
}

class Cat implements Animal {
    public function makeSound() {
        echo "喵喵";
    }
    
    public function eat() {
        echo "猫在吃食物";
    }
}

使用实现类

你可以创建 DogCat 对象,并调用它们的 makeSound()eat() 方法:

phpCopy Code
$dog = new Dog();
$dog->makeSound(); // 输出: 汪汪
$dog->eat(); // 输出: 狗在吃食物

$cat = new Cat();
$cat->makeSound(); // 输出: 喵喵
$cat->eat(); // 输出: 猫在吃食物

 

关键点:

  • 接口不能包含属性,只允许定义常量和方法。
  • 接口中的方法必须是公共的,且没有方法体(即方法定义时不提供实现)。
  • 一个类可以实现多个接口,通过逗号分隔接口名称。
  • 接口不能被实例化,只能通过实现接口的类来创建对象。

接口提供了一种方式来定义不同类间的共同行为,从而支持多态和灵活的代码结构。

 

标签:function,makeSound,接口,public,面向对象,PHP8,Animal,抽象类,eat
From: https://www.cnblogs.com/ruiruiblog/p/18400641

相关文章

  • 14 Python面向对象编程:反射
    本篇是Python系列教程第14篇,更多内容敬请访问我的Python合集在Python中,“反射”通常指的是根据字符串查找并执行相关的类、方法或者属性的能力。Python提供了几个内置函数和语法特性来支持这种能力,比如getattr(),setattr(),hasattr(),delattr()以及dir()等。这些功能......
  • Python中的“类的属性与方法”:解锁面向对象编程的奥秘
    在这个充满数据的世界里,Python作为一门强大的编程语言,已经成为了许多开发者的首选工具。而在Python中,类的属性与方法则是构建复杂系统不可或缺的一部分。它们不仅能够帮助我们更好地组织代码,还能提高程序的可读性和维护性。今天,就让我们一起探索类的属性与方法的魅力所在,从基础到进......
  • 《C++中的面向对象编程三大特性:封装、继承与多态》
    在C++编程的广阔世界中,面向对象编程(Object-OrientedProgramming,OOP)的三大特性——封装、继承和多态,犹如三把强大的利器,帮助程序员构建出高效、可维护和可扩展的软件系统。本文将深入探讨如何在C++中实现这三大特性,并通过具体的代码示例展示它们的强大之处。一、封装(Enca......
  • python学习总结之面向对象
    1.面向对象(上)1.1定义面向对象编程:oop[objectorientedprogramming]是一种python的编程思路;面向过程:就是我们一开始学习的,按照解决问题的步骤去写代码【根据业务逻辑去写代码】,在思考问题的时候,首先分析'怎么按照步骤去实现'然后将问题解决拆解成若干个步骤,并将这些步骤对......
  • 章10——面向对象编程(高级部分)——抽象类
    介绍更多意义在于其设计意义。供子类参考的一个模板。注意细节final、private、static与重写矛盾,不可与abstract共用!补充说明static方法可以被继承,不可以被重写,若父子方法名相同,则会隐藏derive类派生类方法,调用base类基类方法。静态方法时编译时绑定的,而方法重写是运行时......
  • 章10——面向对象编程(高级部分)——final关键字
    基本介绍注意事项final修饰不同东西属性:相当于常量,需要赋初值(构造器(除static)、代码块、定义时)。构造器不可以是静态的,因为构造器中隐含了super和this。类:不可继承。方法:不可重写,但可继承。因为不可以重写的特质不可以修饰构造方法。final和static搭配效率高是因为:不会导......
  • 10.面向对象(2)
    MODULE10 面向对象知道继承的好处会使用继承知道继承之后成员变量以及成员方法的访问特点会方法的重写,以及知道方法重写的使用场景会使用this关键字调用当前对象中的成员会使用super关键字调用父类中的成员会定义抽象方法以及抽象类会重写抽象方法一.继承(一)什么是继承1.我......
  • 11.面向对象(3)
    MODULE11 面向对象会定义接口会在接口中定义抽象方法,默认方法,静态方法,成员变量会调用接口中的成员会利用多态的方式new对象知道多态的前提要知道使用多态的好处会在多态的前提下,向下转型会利用instanceof判断类型一.接口(一)接口的介绍1.接口:是一个引用数据类型,是一个标......
  • 7.面向对象
    MODULE7 面向对象1.知道为啥使用面向对象思想编程2.知道怎么使用面向对象思想编程3.知道什么时候使用面向对象思想编程4.会利用代码去描述世间万物的分类5.会在一个类中访问另一个类中的成员->new对象6.成员变量和局部变量的区别一、类和对象(一)面向对象的介绍1.面向过程:自己......
  • 9.面向对象(1)
    MODULE9 面向对象1.会定义静态成员以及会调用静态成员2.会使用可变参数(会给可变参数传参)3.会二分查找(手撕)4.会冒泡排序(手撕)5.会debug的使用一、static关键字(一)static的介绍以及基本使用1.概述:static是一个静态关键字2.使用:(1)修饰一个成员变量:static数据类型变量名(2)修饰一个方......