php (十八)抽象类与接口

本文详细解释了抽象类的概念,包括抽象方法、无法实例化对象的特点,并通过示例展示了如何在PHP中使用抽象类。接着,文章对比抽象类与接口的作用、声明方式、实现方式等关键区别,并提供了具体的接口实现示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



  什么是抽象类?
 
  1. 如果一个类中,有一个方法是抽象的则这个类就是抽象类
   2. 如果一个类是抽象类,则这个类必须要使用abstract修饰
   3. 抽象类是一种特殊的类,就是因为一个类中有抽象方法,其他不变。也可以在抽象类中声明成员属性,常量,非抽象的方法。
  4. 抽象类不能实例化对象(不能通过抽象类去创建一个抽象类的对象)


   一、抽象方法没有方法体,不知道做什么的(没写功能)
   二、对象中的方法和属性都要通过对象来访问,除常量和静态的变量和方法, 而抽象类又不能创建对象,抽象类中的成员都不能直接访问



  示例: 

	abstract class Demo {
		var $name;
		var $age;


		abstract function test();
		abstract function fun();

		function say(){
			echo "gogogooggogo";
		}

		function run(){
		
		}
	}

	class Hello extends Demo {
		function test() {
			echo "子类要完成的任务1";
		}
		function fun(){
			echo "了类中另一个实现";
		}
	}

	$h=new Hello;

	$h->test();

2.  接口

   接口和抽象类是一样的作用
 
   因为在PHP是单继承的, 如果使用抽象类,子类实现完抽象类就不能再去继承其它的类了。
 
   如果即想实现一些规范, 又想继承一个其他类。就要使用接口

   接口和抽象类的对比
 
     1. 作用相同,都不能创建对象, 都需要子类去实现
     2. 接口的声明和抽象类不一样
     3. 接口被实现的方式不一样
 
     4. 接口中的所有方法必须是抽象方法,只能声明抽象方法(不用使用abstract修饰)
     5. 接口中的成员属性,只能声明常量,不能声明变量

     6. 接口中的成员访问权限 都必须是public, 抽象类中最低的权限protected
 

  示例:

   interface dome {
   	  function test1();
	  function test2();
   }


  class One implements dome{
  	function test1(){
		echo "wwwwwwwwwwwwwwww<br>";
	}

	function test2(){
		echo "eeeeeeeeeeeeeeeee<br>";
	}
  }

  class Two implements dome {
  	function test1(){
		echo "66666666666666666<br>";
	}

	function test2(){
		echo "88888888888888888<br>";
	}
  }
   
   $a=new Two;

   $a->test1();
   $a->test2();


 
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值