php的抽象类和普通类的区别是什么

2021-01-11 08:09:14 字数 4127 阅读 9717

1楼:匿名用户

1.抽象类

概念解释:顾名思义,很抽象就是不具体,不能实例化成具体的实例,可以理解成类的模板

应用场景:比如多国语言,定义一个抽象类,各国语言都继承这个抽象类来开发自己的语言,

作用:抽象类其实主要就是当做类的模板使用 做基础类 一般情况下你用不到

2.接口

作用:接口主要是规范类,接口内的方法几个参数,类里面的方法也必须是几个参数,调用通过接口就可以知道,这个类的方法必须是几个参数

2楼:匿名用户

为了规范写法,新人必须调用抽象类再重载

php的抽象类,接口的区别和选择

3楼:好程序员

区别:

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

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

abstractclassfather

abstractfunctionmeth2();

public$var1="var1";

publicstatic$var2="var2";

constvar3="var3";

}classsonextendsfather

}$s=newson();

echo$s->var1."

";echofather::$var2."

";echofather::var3."

";inte***ceifather

classisonimplementsifather

}$is=newison();

echoifather::ivar3;

?>

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

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

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

抽象类还是接口:

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

如果必须从多个**继承行为,就使用接口。

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

php抽象类和普通类的区别是啥啊,为啥连接数据库用抽象啊

4楼:创世者札记

因为抽象类不能被实例化,你总不希望除了自己以外的人调用自己的程序连接数据库吧

php抽象类和普通类有什么不同

5楼:梦3有个方向

两块钱解决你的问题。

抽象类没有具体公用,需要你去把它完善,说得合理点,它就是定一个轨道给你,你要行车,必须在这个规定的轨道上走,至于你怎么走需要你去实现。(类似框架,有限定,但也有自由)。

普通类应该不需要说了吧?具有实际功能操作的类,封装好的技能,一点击就释放。抽象类就是玄幻世界里,需要读条的大魔法。

php接口和抽象类的区别

6楼:匿名用户

【抽象类

】抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。

【接口】

接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。

接口只是一种形式,接口自身不能做任何事情。

【什么时候使用抽象类和接口】

如果你拥有一些方法并且想让它们中的一些有默认实现,那么使用抽象类吧。

如果你想实现多重继承,那么你必须使用接口。

如果基本功能在不断改变,那么就需要使用抽象类。如果不断改变基本功能并且使用接口,那么就需要改变所有实现了该接口的类。

java继承抽象类与普通类有什么区别?

7楼:娜杰真爱一生

抽象类:

1、抽象类中可以有普通方法,如果想让方法子类必须实现,就弄成抽象方法。

2、如果抽象类中有抽象方法,那么这个类必须定义为抽象类。

3、抽象类不能被new。

普通类:

1、普通类中不能有抽象方法。

2、如果一个普通类实现了一个抽象接口或者抽象类,那么意味着必须重写抽象方法。

一、继承(extends)

继承是对现实生活中的"分类"概念的一种模拟。

狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是"继承"关系的重要特性:通常简称为"is_a"关系,uml类图可以这么表示:

继承的语法

class 子类名 extends 父类名

注意:父类(parent class)和超类(super class):通常指直接上级;

基类(base class):通常指包括直接上级在内的"上级的上级";

例如:子类自动拥有父类声明为public和protected的成员,这就是继承特性的体现之一。

继承条件下类的访问权限:

public:外界可自由访问

private:外界不可访问

protected:同一包中的子类都可以访问,另一包中的子类(派生于同一个父类)也可以访问

default:如果不指明任何权限,则默认同一包中的类可以访问

8楼:小童鞋_成

您好,提问者:

抽象类:

1、抽象类中可以有普通方法,如果想让方法子类必须实现,就弄成抽象方法。

2、如果抽象类中有抽象方法,那么这个类必须定义为抽象类。

3、抽象类不能被new。

普通类:

1、普通类中不能有抽象方法。

2、如果一个普通类实现了一个抽象接口或者抽象类,那么意味着必须重写抽象方法。

php抽象类和接口的区别

9楼:匿名用户

抽象类中可以包含方法的实现,接口中的方法只能是方法的声明。

php的抽象类和接口的区别

10楼:流星飞满天

接口中不可以声明成员变量(包括类静态变量),但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数据的封装。

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

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

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

关于php继承抽象类 和 继承普通类 有什么区别

11楼:匿名用户

抽象类中必须包含一个抽象方法,只能交给他的继承类重写实现,比如你上面那个抽象类,继承他的类必须要有一个kx方法。而下面那个普通类的继承类可以没有kx方法。这样的好处就是统一性,比如我们要有一个数据库操作类,我们可能用来操作mysql,也可能操作oracle,但是他们都会有一些共同的方法,这样我们通过一个抽象类来统一方法、参数,mysql类和oracle类都来继承这个抽象类,这样,以后我们,操作mysql就实例mysql类,操作oracle就实例oracle类,但是不管是操作mysql和oracle都可以使用同样的方法和参数(这只是一个比方,系统有提供数据库抽象层如pdo供我们使用)。

当然你也可以说继承普通类也可以统一方法参数,确实是可以,但是如果继承者没有统一方法也不会报错。而使用抽象类就硬性规定了必须要重写方法否则出错。

12楼:末日续章

继承抽象类里的抽象方法必须重写,而普通方法继承不用

13楼:混帐东西

个人感觉php里的抽象类意义不大,都能用普通类代替。

不像c++中抽象类与虚基类那么强大,尤其在实现多态方面。

PHP接口和抽象类的区别,php抽象类和接口的区别

1楼 匿名用户 抽象类 抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。 接口 接口是抽象方法的集合。如果一个类实现了某个接口,那么它就继承了这个接口的抽象方法。这就像契约模式,如果实现了这个接口,那么就必须确保使用这些方法。 接口只...

php中接口,抽象类还有什么用,php抽象类和接口的区别

1楼 一骑当后 抽象的作用可不仅仅是规范 这么简单哦 有些逻辑 不用抽象会让你的项目变成一团乱码 以至于无法完成。 初学者建议研究一下php内置的dom扩展的继承结构 这个dom扩展就是由一个domnode类为核心通过扩展 实现了对xml文档的全面操作 很有代表性 搞清楚了不仅能初步理解面向对象 大...

php中抽象类和接口的区别,java中抽象类和接口的区别?

1楼 越勒 区别 1 对接口的使用是通过关键字implements。对抽象类的使用是通过关键字extends。 当然接口也可以通过关键字extends继承。 2 接口中不可以声明成员变量 包括类静态变量 ,但是可以声明类常量。抽象类中可以声明各种类型成员变量,实现数 java中抽象类和接口的区别? ...