码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象的三大特征

时间:2016-04-06 18:20:57      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:

面向对象三大特

抽象

????提取事务的共性,共同的特性,抽象是一个过程,得到的是一个具有描述性的概念--类。

????特性就是共同的属性,事务中是否具有共性,是相对的。例如:汽车与水果,都是商品,共性指的是从某个角度是具有共性。抽象只是在概念(现实中)来理解类。

封装

????计算机中的封装,指的是隐藏对象的属性与内部实现细节,对外只提公共供接口进行操作,通过使用public、private、protected、final、staitc关键定,来控制类外部的代码对内成员的使用。函数是也是封装,函数只是封装一个功能,类是封装多个功能,而且还有数据。封装就是从代码上书写类的过程。

继承

????面向对象的一个很重要的功能就中继承,继承指的是这样一种能力。可以使用现在有的类的所有的功能与数据,还可以在不更改原类的基础上,对此类进行功能上的扩展 (重写)。

????在使用继承时,存在两个类,两个类之间是属于关系。例如:Manger类、Boss类,可以同时属于Employee类。继承就是一个由一般到特殊的过程。

????

多态

????字面上来讲,多态就是多种状态。通过一个接口,实现不同的内部细节。

php的多态,不像Java语言那么纯正。计算机中的多态,同一个类的不同对象,执行同一个方法,返回不同的结果(方法里面的代码不同)。

继承

继承的语法

class 类B extends 类A{

????//类成员

}

说明:

????类B继承类A,

????类B叫子类或派生类

????类A叫基类或超类

示例:

技术分享

继承的内容

所有的属性与非私有方法

技术分享

继承的内容的访问

公有的属性访问

与访问本类的中公有属性相同

????对象名->属性名;

受保护的属性访问

????只能在类内的方法中访问,使用$this->受保护属性名

示例:

技术分享

私有属性的访问

分子类的私有属性,需要在子类内提供一个接口,访问本类内的私有属性

父类的私有属性,虽然继承过来了,但是"版权"(private),还是父类的,所以想访问,必须在父类内提供一个公共的接口,来访问父因具版权的私有属性。

技术分享

示例:

技术分享

技术分享

公有的方法的访问

????使用对象直接访问

语法:

????对象名->方法名();

私有的方法的访问

技术分享

重写

一定是有继承之后才有重写。

属性的重写

技术分享

技术分享

当子类在继承父类时,如果子类的属性名与父类的属性名相同,则为属性重写

  • 先将子类的属性放到对象的空间,
  • 再继承父类的属性,
  • 如果遇到同名的,只保留子类的,不同直接保存在对象空间
  • 私有属性,不会被重写。

?

访问重写的属性

技术分享

访问父类中被重写的属性(private)

技术分享

方法的重写

????重写不是子类去父类中更改父类的方法的代码,而是子类中有同名的方法,形象的称之为"重写"

访问子类中与父类同名的方法

技术分享

访问父类中被子类重写的方法

技术分享

技术分享

重写的规则

技术分享

PHP继承的特点

PHP中的继承只能是单继承,extends后面只能有一个类名

静态继承

静态成员的继承,只要父类有的,子类就可以访问。

抽象类

abstract抽象,主要就是用于规范项目。

语法:

????abstract class 类名{

????????//类成员或抽象方法

????}

说明:

  • 抽象类中可以有任何类成员
  • 抽象类不能实例化
  • 抽象方法不能有方法体
  • 抽象方法所在的类,必须是抽象类

示例:

技术分享

最终类

final

技术分享

一般用于不想被别人更改自己

技术分享

面向对象三大特

抽象

????提取事务的共性,共同的特性,抽象是一个过程,得到的是一个具有描述性的概念--类。

????特性就是共同的属性,事务中是否具有共性,是相对的。例如:汽车与水果,都是商品,共性指的是从某个角度是具有共性。抽象只是在概念(现实中)来理解类。

封装

????计算机中的封装,指的是隐藏对象的属性与内部实现细节,对外只提公共供接口进行操作,通过使用public、private、protected、final、staitc关键定,来控制类外部的代码对内成员的使用。函数是也是封装,函数只是封装一个功能,类是封装多个功能,而且还有数据。封装就是从代码上书写类的过程。

继承

????面向对象的一个很重要的功能就中继承,继承指的是这样一种能力。可以使用现在有的类的所有的功能与数据,还可以在不更改原类的基础上,对此类进行功能上的扩展 (重写)。

????在使用继承时,存在两个类,两个类之间是属于关系。例如:Manger类、Boss类,可以同时属于Employee类。继承就是一个由一般到特殊的过程。

????

多态

????字面上来讲,多态就是多种状态。通过一个接口,实现不同的内部细节。

php的多态,不像Java语言那么纯正。计算机中的多态,同一个类的不同对象,执行同一个方法,返回不同的结果(方法里面的代码不同)。

继承

继承的语法

class 类B extends 类A{

????//类成员

}

说明:

????类B继承类A,

????类B叫子类或派生类

????类A叫基类或超类

示例:

技术分享

继承的内容

所有的属性与非私有方法

技术分享

继承的内容的访问

公有的属性访问

与访问本类的中公有属性相同

????对象名->属性名;

受保护的属性访问

????只能在类内的方法中访问,使用$this->受保护属性名

示例:

技术分享

私有属性的访问

分子类的私有属性,需要在子类内提供一个接口,访问本类内的私有属性

父类的私有属性,虽然继承过来了,但是"版权"(private),还是父类的,所以想访问,必须在父类内提供一个公共的接口,来访问父因具版权的私有属性。

技术分享

示例:

技术分享

技术分享

公有的方法的访问

????使用对象直接访问

语法:

????对象名->方法名();

私有的方法的访问

技术分享

重写

一定是有继承之后才有重写。

属性的重写

技术分享

技术分享

当子类在继承父类时,如果子类的属性名与父类的属性名相同,则为属性重写

  • 先将子类的属性放到对象的空间,
  • 再继承父类的属性,
  • 如果遇到同名的,只保留子类的,不同直接保存在对象空间
  • 私有属性,不会被重写。

?

访问重写的属性

技术分享

访问父类中被重写的属性(private)

技术分享

方法的重写

????重写不是子类去父类中更改父类的方法的代码,而是子类中有同名的方法,形象的称之为"重写"

访问子类中与父类同名的方法

技术分享

访问父类中被子类重写的方法

技术分享

技术分享

重写的规则

技术分享

PHP继承的特点

PHP中的继承只能是单继承,extends后面只能有一个类名

静态继承

静态成员的继承,只要父类有的,子类就可以访问。

抽象类

abstract抽象,主要就是用于规范项目。

语法:

????abstract class 类名{

????????//类成员或抽象方法

????}

说明:

  • 抽象类中可以有任何类成员
  • 抽象类不能实例化
  • 抽象方法不能有方法体
  • 抽象方法所在的类,必须是抽象类

示例:

技术分享

最终类

final

技术分享

一般用于不想被别人更改自己

技术分享

面向对象的三大特征

标签:

原文地址:http://www.cnblogs.com/nyxd/p/5360057.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!