⾯向对象语⾔编程三⼤特点-封装,继承,多态
⾯向对象的三个基本特征是:封装、继承、多态。
封装:可以隐藏实现细节,使得代码模块化;
继承:可以扩展已存在的代码模块(类);它们的⽬的都是为了——代码重⽤。
多态:则是为了实现另⼀个⽬的——接⼝重⽤!
现在仔细讲⼀下
什么是封装?
封装可以隐藏实现细节,使得代码模块化;在⾯向对象编程上可理解为:把客观事物封装成抽象的类,并且类可以把⾃⼰的数据和⽅法只让可信的类或者对象操作,对不可信的进⾏信息隐藏。
封装的意义?
封装的意义在于保护或者防⽌代码(数据)被我们⽆意中破坏。在⾯向对象程序设计中数据被看作是⼀个中⼼的元素并且和使⽤它的函数结合的很密切,从⽽保护它不被其它的函数意外的修改。
1. 保护数据成员,不让类以外的程序直接访问或修改,只能通过提供的公共的接⼝访问==>数据封装;
2. ⽅法的细节对⽤户是隐藏的,只要接⼝不变,内容的修改不会影响到外部的调⽤者==> ⽅法封装;
3. 当对象含有完整的属性和与之对应的⽅法时称为封装;
4. 从对象外⾯不能直接访问对象的属性,只能通过和该属性对应的⽅法访问;
5. 对象的⽅法可以接收对象外⾯的消息;
什么是继承?
继承是指这样⼀种能⼒:它可以使⽤现有类的所有功能,并在⽆需重新编写原来的类的情况下对这些功能进⾏扩展。其继承的过程,就是从⼀般到特殊的过程。
通过继承创建的新类称为“⼦类”或“派⽣类”。被继承的类称为“基类”、“⽗类”或“超类”。要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。在某些 OOP 语⾔中,⼀个⼦类可以继承多个基类。但是⼀般情况下,⼀个⼦类只能有⼀个基类,要实现多重继承,可以通过多级继承来实现。
继承的实现⽅式?
继承概念的实现⽅式有三类:实现继承、接⼝继承和可视继承。
1. 实现继承是指使⽤基类的属性和⽅法⽽⽆需额外编码的能⼒;
2. 接⼝继承是指仅使⽤属性和⽅法的名称、但是⼦类必须提供实现的能⼒;
程序设计语言一般可分为三大类3. 可视继承是指⼦窗体(类)使⽤基窗体(类)的外观和实现代码的能⼒;
什么是多态?
“⼀个接⼝,多种⽅法”,同⼀操作作⽤于不同的对象,可以有不同的解释,产⽣不同的执⾏结果。
多态的三个条件?
1. 继承的存在(继承是多态的基础,没有继承就没有多态);
2. ⼦类重写⽗类的⽅法(多态下调⽤⼦类重写的⽅法);
3. ⽗类引⽤变量指向⼦类对象(⼦类到⽗类的类型转换);
重载(overload)和重写(override)是实现多态的两种主要⽅式。
注意:php 中没有重载,只有⼦类的重写(也就是重写⽅法部分逻辑),想要实现重载,这⽐要的时候通过 trait 关键词来实现。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论