美文网首页
面向对象的三大特征 封装、多态、继承

面向对象的三大特征 封装、多态、继承

作者: 东方诗空 | 来源:发表于2022-03-18 15:43 被阅读0次

面向对象的三大特征 封装、多态、继承

一、封装

封装是对象和类概念的主要特性。它是隐藏内部实现,稳定外部接口,可以看作是“包装”。
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。

好处:使用更简单变量更安全可以隐藏内部实现细节开发速度加快
OC中一个类可以继承另一个类,被继承的类成为超类(superclass),继承的类是子类(childclass),可以直接拥有父类中所有非私有成员(相关实例变量)、方法。继承的实现在接口中使用符号“:”。
举个例子:@interfaceStudent:NSObject{}不过大家要注意的是:属性封装实例变量,方法封装具体实现代码,类封装属性和方法。子类可继承父类中的方法,还可重写父类方法。

二、多态

多态性(polymorphism)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。
简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。不同对象以自己的方式响应相同的消息的能力叫做多态。
意思就是假设生物类(life)都用有一个相同的方法-eat;那人类属于生物,猪也属于生物,都继承了life后,实现各自的eat,但是调用是我们只需调用各自的eat方法。也就是不同的对象以自己的方式响应了相同的消息(响应了eat这个选择器)。
实现多态,有二种方式,覆盖,重载。
1)覆盖:是指子类重新定义父类的虚函数的做法。
2)重载:是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

三、继承

面向对象编程(OOP)语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。继承的过程,就是从一般到特殊的过程。在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如,Employee是一个人,Manager也是一个人,因此这两个类都可以继承Person类。但是Leg类却不能继承Person类,因为腿并不是一个人。

本章小结:

封装可隐藏实现细节,,使代码模块化;继承可扩展已存在的代码模块(类);它们最终需要的结果(代码重用)。多态是为了实现另一个目的(接口重用)。多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

相关文章

  • java面向对象的三大特征 之 封装

    面向对象的三大特征: 封装 继承 多态 封装

  • iOS基础 - oc的三大特性

    封装、继承、多态 oc是面向对象的程序设计语言,而面向对象的三大特征:封装、继承、多态。 封装 没有绝对的封装,只...

  • Java基础语法

    1、面向对象的三大特征《 封装、继承、多态》

  • Java的封装、继承、多态 包

    目录: 面向对象的三大特征:封装、继承、多态包方法重写superinstanceof 面向对象的三大特征:封装、继...

  • Java多态及相关

    面向对象有三大特征:封装、继承、多态。从一定角度看,封装与继承是为多态准备的。多态也是面向对象中最重要的概念。 多...

  • Java面向对象编程——封装和继承

    面向对象是编程的重点,涉及到类的封装、继承、抽象、多态及接口的设计等。其中,封装、继承、多态是面向对象的三大特征。...

  • Java语言本身以及高级特性

    面向对象 三大特征 封装 Encapsulation 继承 Inheritance 多态 Polymorphism...

  • Java笔记

    Java基础 Java面试通关要点 1.面向对象的特征 封装 继承 多态 封装继承多态 2.final,final...

  • OC中自定义初始化 与 方法分类

    面向对象的三大特征, 封装, 继承与多态!面向对象编程OOP(Object Oriented Programmin...

  • iOS概念知识

    面向对象的三大特征,并作简单的介绍。 面向对象的三个基本特征是:封装、继承、多态。 1.封装是面向对象的特征之一,...

网友评论

      本文标题:面向对象的三大特征 封装、多态、继承

      本文链接:https://www.haomeiwen.com/subject/gevvgktx.html