美文网首页
Objective C - 面向对象语言的特点

Objective C - 面向对象语言的特点

作者: 捕梦少女的梦想 | 来源:发表于2017-03-29 17:25 被阅读0次

     封装

    封装是对象和类概念的主要特性。它是隐藏内部实现,提供外部接口,可以看作是“包装”。

    封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,

    对不可信的进行信息隐藏。

    封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,

    以特定的访问权限来使用类的成员。

    好处:可以隐藏内部实现细节。通过大量功能类封装,加快后期开发速度。

    继承

    面向对象编程 (OOP) 语言的一个主要功能就是“继承”。

    继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下

    对这些功能进行扩展。

    通过继承创建的新类称为“子类”或“派生类”,被继承的类称为“基类”、“父类”或“超类”。

    继承的过程,就是从一般到特殊的过程。在考虑使用继承时,有一点需要注意,

    那就是两个类之间的关系应该是“属于”关系。

    例如,Employee(雇员)是一个人,Manager(领导)也是一个人,因此这两个类都可以继承Person类。

    但是 Leg(腿) 类却不能继承 Person 类,因为腿并不是一个人。

    多态

    多态性(polymorphism)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,

    赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。

    简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。

    不同对象以自己的方式响应相同的消息的能力叫做多态。

    意思就是假设生物类(life)都用有一个相同的 方法-eat;那人类属于生物,猪也属于生物,

    都继承了life后,实现各自的eat,但是调用是我们只需调用各自的eat方法。

    也就是不同的对象以 自己的方式响应了相同的消息(响应了eat这个选择器)。

    实现多态,有二种方式,覆盖,重载。

    ·    覆盖(override),是指子类重新定义父类的虚函数的做法。

    ·    重载(overload),是指允许存在多个同名函数,而这些函数的参数表不同

    (或许参数个数不同,或许参数类型不同,或许两者都不同)。

    ** 这里注意:OC没有重载,因为OC只认函数名,不认参数类型。OC不允许存在多个同名函数。

    总结:

    封装可以隐藏实现细节,使得代码模块化;

    继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。

    而多态则是为了实现另一个目的——接口重用!

    多态的作用,就是为了类在继承和派生的时候,保证使用“家谱”中任一类的实例的某一属性时的正确调用。

    在类层次中,子类只继承一个父类的数据结构和方法,则称为单重继承。

    在类层次中,子类继承了多个父类的数据结构和方法,则称为多重继承。

    相关文章

      网友评论

          本文标题:Objective C - 面向对象语言的特点

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