成语| 古诗大全| 扒知识| 扒知识繁体

当前位置:首页 > 趣味生活

php抽象类和接口的区别

Q1:php中抽象类和接口的概念以及区别

本篇文章是对php中抽象类和接口的概念以及区别进行了详细的分析介绍,需要的朋友参考下复制代码 代码如下:
//抽象类的定义:
abstract class ku{//定义一个抽象类
abstract function kx();
......
}
function aa extends ku{
//实现抽象类的方法
function kx(){
echo sdsf;
}
}
//使用方法
$aa=new aa;
$aa->kx();
//1.定义一些方法,子类必须完全实现这个抽象中所有的方法
//2.不能从抽象类创建对象,它的意义在于被扩展
//3.抽象类通常具有抽象方法,方法中没有大括号
//4.抽象方法不必实现具体的功能,由子类来完成
//5.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义
//6.抽象类的方法可以有参数,也可以为空
//7.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数
//////////////////////////////接口类的定义:
interface Shop{
publicfunction buy($gid);
publicfunction sell($gid);
abstract function view($gid);
}
//如果要使用接口,必须定义接口类中的所以方法少一个都不可以(abstract除外)。
//这样如果在一个大项目中不管别人怎么去做下面的方法,但是他必须实现本接口中的所有方法才可以!
//例:实现上面的接口的一种方法
class BaseShop implements Shop{
public function buy($gid){
echo 你购买了ID为 : . $gid . 的商品;
}
public function sell($gid){
echo 你购卖ID为 : . $gid . 的商品;
}
public function view($gid){
echo 你浏览了ID为 : . $gid . 的商品;
}
}
//接口的多重继承示例:
<?php
interface staff_i1{ //接口1、function setID();
function getID();
}
interface staff_i2{ //接口2、function setName();
function getName();
}
class staff implements staff_i1,staff_i2{
private $id;
private $name;
function setID($id){
$this->id = $id;
}
function getID(){
return $this->id;
}
function setName($name){
$this->name = $name;
}
function getName(){
return $this->name;
}
function otherFunc(){ //这是一个接口中不存在的方法
echo “Test”;
}
}
?>


他们的不同点:
1。抽象类中可以有非抽象的方法而接口中只能够有抽象的方法!
2。一个类可以继承多个接口,而一个类只能继承一个抽象类!
3。接口的使用方式通过implements关键字进行,抽象类则是通过继承extends关键字进行!

Q2:浅析php中抽象类和接口的概念以及区别

复制代码 代码如下:
//抽象类的定义:
abstract class ku{ //定义一个抽象类
abstract function kx();
......
}
function aa extends ku{
//实现抽象类的方法
function kx(){
echo sdsf;
}
}
//使用方法
$aa=new aa;
$aa->kx();
//1.定义一些方法,子类必须完全实现这个抽象中所有的方法
//2.不能从抽象类创建对象,它的意义在于被扩展
//3.抽象类通常具有抽象方法,方法中没有大括号
//4.抽象方法不必实现具体的功能,由子类来完成
//5.在子类实现抽象类的方法时,其子类的可见性必须大于或等于抽象方法的定义
//6.抽象类的方法可以有参数,也可以为空
//7.如果抽象方法有参数,那么子类的实现也必须有相同的参数个数
//////////////////////////////接口类的定义:
interface Shop{
public function buy($gid);
public function sell($gid);
abstract function view($gid);
}
//如果要使用接口,必须定义接口类中的所以方法少一个都不可以(abstract除外)。
//这样如果在一个大项目中不管别人怎么去做下面的方法,但是他必须实现本接口中的所有方法才可以!
//例:实现上面的接口的一种方法
class BaseShop implements Shop{
public function buy($gid){
echo 你购买了ID为 : . $gid . 的商品;
}
public function sell($gid){
echo 你购卖ID为 : . $gid . 的商品;
}
public function view($gid){
echo 你浏览了ID为 : . $gid . 的商品;
}
}
//接口的多重继承示例:
<?php
interface staff_i1{ //接口1、 function setID();
function getID();
}
interface staff_i2{ //接口2、 function setName();
function getName();
}
class staff implements staff_i1,staff_i2{
private $id;
private $name;
function setID($id){
$this->id = $id;
}
function getID(){
return $this->id;
}
function setName($name){
$this->name = $name;
}
function getName(){
return $this->name;
}
function otherFunc(){ //这是一个接口中不存在的方法
echo “Test”;
}
}
?>
他们的不同点:
1。抽象类中可以有非抽象的方法而接口中只能够有抽象的方法!
2。一个类可以继承多个接口,而一个类只能继承一个抽象类!
3。接口的使用方式通过implements关键字进行,抽象类则是通过继承extends关键字进行!

Q3:php抽象类和接口的区别

区别:
1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。
2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型)
3、接口没有构造函数,抽象类可以有构造函数。
4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。
5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。
抽象类还是接口。
如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。
如果必须从多个来源继承行为,就使用接口。
如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。

WW%W.bAzhiSHI.COM

Q4:PHP的抽象类,接口类的区别和选择

一、抽象类里面的方法可以有实现,但是接口里面的方法确是只能声明。
二、接口是设计的结果
抽象类是重构的结果
三、java不支持多重继承,所以继承抽象类只能继承一个,但是可以实现多个接口。
1 接口是核心,其定义了要做的事情,包含了许多的方法,但没有定义这些方法应该如何做。
2 如果许多类实现了某个接口,那么每个都要用代码实现那些方法
3 如果某一些类的实现有共通之处,则可以抽象出来一个抽象类!

Q5:PHP中抽象类、接口的区别与选择分析

本文实例分析了PHP中抽象类、接口的区别与选择。分享给大家供大家参考,具体如下:

区别:

1、对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。当然接口也可以通过关键字extends继承。

2、接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。(另JAVA接口中的成员变量都要声明为public static final类型)

<?phpabstract class Father {function meth1() {echo "meth1...
";}abstract function meth2();public $var1="var1";public static $var2="var2";const Var3="Var3";}class Son extends Father {function meth2() {echo "meth2 of Son...
";}}$s=new Son();echo $s->var1."
";echo Father::$var2."
";echo Father::Var3."
";Interface IFather {//public $iVar1="iVar1"; 此处接口定义中不能包含成员变量//public static $iVar2="iVar2"; 此处接口定义中不能包含静态变量const iVar3="iVar3";function iMeth1();}Class ISon implements IFather {function iMeth1() {echo "iMeth1...
";}}$is=new ISon();echo IFather::iVar3;?>

3、接口没有构造函数,抽象类可以有构造函数。

4、接口中的方法默认都是public类型的,而抽象类中的方法可以使用private,protected,public来修饰。

5、一个类可以同时实现多个接口,但一个类只能继承于一个抽象类。

抽象类还是接口

1. 如果要创建一个模型,这个模型将由一些紧密相关的对象采用,就可以使用抽象类。如果要创建将由一些不相关对象采用的功能,就使用接口。

2. 如果必须从多个来源继承行为,就使用接口。

3. 如果知道所有类都会共享一个公共的行为实现,就使用抽象类,并在其中实现该行为。

更多关于PHP感兴趣的读者可查看本站专题:《PHP网络编程技巧总结》、《PHP基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

Q6:php 抽象类和接口的区别

对接口的使用方式是通过关键字implements来实现的,而对于抽象类的操作是使用类继承的关键字exotends实现的,使用时要特别注意。
接口没有数据成员,但是抽象类有数据成员,抽象类可以实现数据的封装。
接口没有构造函数,抽象类可以有构造函数。
接口中的方法都是public类型,而抽象类中的方法可以使用private、protected或public来修饰。
一个类可以同时实现多个接口,但是只能实现一个抽象类。 就这样简单, 如果你还不明白的话,你可以在后盾人看看教材视频,多看看几遍,慢慢的不就会了,如果嫌弃麻烦,你可以直接去后盾网问问那些专家讲师,他们很乐意帮你的,,给个采纳吧谢谢,(●??????●)

猜你喜欢

更多