面向对象的三大特征
Posted 尼农小道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象的三大特征相关的知识,希望对你有一定的参考价值。
面向对象三大特性
抽象
提取事务的共性,共同的特性,抽象是一个过程,得到的是一个具有描述性的概念--类。
特性就是共同的属性,事务中是否具有共性,是相对的。例如:汽车与水果,都是商品,共性指的是从某个角度是具有共性。抽象只是在概念(现实中)来理解类。
封装
计算机中的封装,指的是隐藏对象的属性与内部实现细节,对外只提公共供接口进行操作,通过使用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
一般用于不想被别人更改自己
以上是关于面向对象的三大特征的主要内容,如果未能解决你的问题,请参考以下文章