美文网首页
05-self、super、封装、继承、多态

05-self、super、封装、继承、多态

作者: Giurlo | 来源:发表于2016-04-12 17:59 被阅读38次

self、super、封装、继承、多态


self


self用于调用本类中的方法

  • 前提: self不能离开类, 离开类之后没有任何意义

  • 含义:

    • 如果self在对象方法中, 那么self就代表调用当前对象方法的那个对象
    • 如果self在类方法中, 那么self就代表调用当前类方法的那个类
  • 总结: 只用关注self在哪一个方法中 , 如果在类方法那么就代表当前类, 如果在对象方法那么就代表"当前调用该方法的对象"

  • 注意:

    • self会自动区分类方法和对象方法, 如果在类方法中使用self调用对象方法, 那么会直接报错
    • 不能在对象方法或者类方法中利用self调用当前self所在的方法(会发生死循环)
  • 使用场景:

    • 可以用于在对象方法之间进行相互调用
    • 可以用于在类方法之间进行相互调用
    • 可以用于区分成员变量和局部变量同名的情况

super


super用于调用父类中的方法

  • 使用方法: 只需要利用super给父类的方法发送一个消息, 那么系统就会自动调用父类的方法

  • 使用场景:

    • 如果以后想在子类中调用父类的方法可以使用super
    • 如果想在给父类方法进行扩展的同时保留父类的方法, 那么可以使用super调用父类同名的方法
  • 其他:

    • super在类方法中, 一定会调用父类的类方法
    • super在对象方法中, 一定会调用父类的对象方法
    • 可以利用super在任意方法中调用父类中的方法

封装


  • 封装: 屏蔽内部实现的细节, 仅仅对外提供共有的方法/接口(如setter, getter方法)

  • 好处: 保证数据的安全性, 将变化隔离

  • 规范: 一般情况下不会对外直接暴露成员变量, 都会提供一些共有的方法进行赋值
    成员变量都需要封装起来

继承


  • 继承: 当B类继承A类, 那么B类就拥有A类所有的属性和方法(类方法/对象方法)

  • 优点:

    • 提高代码的复用性
    • 可以让类与类之间产生关系, 正是因为继承让类与类之间产生了关系所以才有了多态
  • 注意: 不要因为继承可以提高代码的复用性,就把含有重复代码的多个类抽取一个父类,
    只要满足一定的条件我们才能使用继承.

  • 条件: XXXX XXX / 某某某 is a 某某某

  • 缺点: 耦合性太强(依赖性太强, 若删掉父类就会影响子类)

多态


  • 多态: 事物的多种表现形态

  • 在程序中如何表现: 父类指针指向子类对象

  • 优点: 提高了代码的扩展性

  • 注意点: 如果父类指针指向子类对象, 如果需要调用子类特有的方法, 必须先强制类型转换为子类才能调用

相关文章

  • 05-self、super、封装、继承、多态

    self、super、封装、继承、多态 self self用于调用本类中的方法 前提: self不能离开类, 离开...

  • iOS开发之一OC语言的特性

    三大特性:封装、继承、多态 一、封装(成员变量的封装) 二、继承 三、多态(多种形态)

  • java多态

    概述 面向对线的四个基本特征:抽象,封装,基础,多态。抽象,封装,继承是多态的基础,多态是抽象,封装,继承的表现 ...

  • Python基础-day12

    list ​ 封装 ​ 继承 面向对象的三大特性 ​ 封装 继承 多态 封装 ​ 生活里 ​ ...

  • 31-封装、继承、多态

    封装、继承、多态 面向对象编程有三大重要特征:封装、继承和多态。 继承 继承机制实现了代码的复用,多个类公用的代码...

  • Java的基本特性

    关系 Java的四个基本特性分别是抽象,封装,继承,多态。概括起来可以这么理解,抽象、封装、继承是多态的基础,多态...

  • iOS基础 - oc的三大特性

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

  • Java笔记

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

  • iOS 语言三大特性

    封装 、 继承、多态OC学习篇之---类的三大特性(封装,继承,多态) - Android应用安全防护和逆向分析-...

  • day09-Java面向对象三(多态/抽象类/接口)

    9.0 Java面向对象三大特性 封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的 多态概念:指...

网友评论

      本文标题:05-self、super、封装、继承、多态

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