面向对象的三大特征

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

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

以上是关于面向对象的三大特征的主要内容,如果未能解决你的问题,请参考以下文章

java面向对象的三大特征?

“面向对象”的三大特征是啥,各自的定义是啥?

面向对象三大特征---多态

面向对象的三大特征

Golang-面向对象编程三大特性-多态

面向对象三大特性五大原则