(1)self调用自己方法,super调用父类方法 (2)self是类,super是预编译指令 (3)[self class]和[super class]输出是一样的 ...①当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类的方法列表中开始找,然后调用父类的这个方法。...; }; 当编译器遇到[super setName:]时,开始做这几个事: 1)构建 objc_super 的结构体,此时这个结构体的第一个成员变量 receiver 就是子类,和...self 相同。...而第二个成员变量 superClass 就是指父类 调用 objc_msgSendSuper 的方法,将这个结构体和 setName 的 sel 传递过去。
@implementation SubCls - (void)print { NSLog(@"%@",[self class]); NSLog(@"%@",[self superclass...*, SEL))(void *)objc_msgSendSuper)((__rw_objc_super){(id)self, (id)class_getSuperclass(objc_getClass...*, SEL))(void *)objc_msgSendSuper)((__rw_objc_super){(id)self, (id)class_getSuperclass(objc_getClass...final code will be like this: objc_msgSendSuper((objc_super){self,class_getSuperclass(objc_getClass("...SubCls"))},sel_registerName("class")) objc_msgSendSuper((objc_super){self,class_getSuperclass(objc_getClass
this表示当前调用方法的对象的引用: (谁调用这个方法,谁就是这个对象,这个this就是它的引用) 比如: <pre name="code" class="j...
Java中this和super的区别和应用 1 /* 2 问题是: 3 1.我不仅仅要输出局部范围的变量num,还要输出本类成员范围的变量num。怎么办呢?...6 恭喜你,这个关键字是存在的:super。 7 8 this和super的区别? 9 分别是什么呢?...11 super代表父类存储空间的标识(可以理解为父类的引用,可以操作父类的成员,但不是父类的对象!) 12 13 怎么用呢?...调用本类的构造方法 19 super(...)...20 C:访问成员方法(在子父类的成员方法问题讲) 21 this.成员方法 调用本类的成员方法 22 super
当只有一个类,没有任何继承关系的时候,这俩是一样的,也就是返回当前类的实例对象 当存在继承关系的时候,两者有区别 比如 new self在父类里,调用的时候会返回当前这个类的实例对象 比如 new static...>assertTrue(true); } } class Father { public static function getSelf() { return new self...都是使用Son类调用,self那个返回的Father的对象 ,static是Son的对象
在php的面向对象编程中,总会遇到 class test{ public static function test(){ self::func(); static::func();...} public static function func(){} } 可你知道self和static的区别么?...其实区别很简单,只需要写几个demo就能懂: Demo for self: class Car { public static function model(){ self::getModel...在PHP5.3版本以前,static和self还是有一点区别,具体是什么,毕竟都是7版本的天下了。就不去了解了。...总结呢就是:self只能引用当前类中的方法,而static关键字允许函数能够在运行时动态绑定类中的方法。
目录[-] 单继承时super()和init()实现的功能是类似的 class Base(object): def __init__(self): print 'Base create...base = Base() a = childA() b = childB() 输出结果: Base create creat A Base create creat B Base create 区别是使用...__init__(self) super(childA, self)....__init__(self) super(childB, self)....()方法可以看出,super()的第一个参数可以是继承链中任意一个类的名字, 如果是本身就会依次继承下一个类; 如果是继承链里之前的类便会无限递归下去; 如果是继承链里之后的类便会忽略继承链汇总本身和传入类之间的类
(1.)代表的事物不同 super代表的是父类空间的引用 this代表的是所属函数的调用者对象 (2.)使用前提不同...super必须要有继承关系才能使用 this不需要继承关系也能使用 (3.)调用的构造函数不同 super:调用父类的构造函数
我们在使用python中的类继承时,子类继承父类后,在重载父类的方法后,在方法中如果要执行父类对应的方法,一般有两种方式:super和Base(表示父类名)。...但是直接使用Base类名调用时,方法内部需要知道self是谁。那么两种方式都可以,他们有区别吗?...):绑定对象,要求type2是type的子类 这里我们就先说一下super()和super(type, obj),这是我们常用的方式 在上面的例子中我们看到super和Base的方式一样,接下来我们再看一个例子...__init__中Device1和Device2都调用了初始化方法,是这个原因吗?准确点来讲,是的,可不可以只调用一个,那么Base就只会被调用一次喽,如果只调用Device1....__init__和func是一样的,这绝不是我们所希望的类函数。那么为什么super会正确的找到要执行的函数呢?
****面试题:请解释一下this和super的区别? ?....") ; } } class B extends A { public void print() { super.print() ; System.out.println...切记: · this.方法():先从本类查找是否存在指定的方法,如果没有找到,则调用父类操作; · super.方法():直接由子类调用父类之中的指定方法,不再找子类。
{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。...这里我主要谈的是this,self,parent 三个关键字之间的区别。从字面上来理解,分别是指这、自己、父亲。...PHP中this,self,parent的区别之二self篇 此篇我们就self的用法进行讲解 首先我们要明确一点,self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量...> 这里要注意两个地方语句①和语句②。我们在语句①定义了一个静态变量firstCount,那么在语句②的时候使用了self调用这个值,那么这时候我们调用的就是类自己定义的静态变量frestCount。...{三}PHP中this,self,parent的区别之三parent篇 此篇我们就parent的用法进行讲解。
简介 在使用PHP代码时,您可能经常会遇到parent::、static::和self::。但是当你第一次作为一个开发人员开始的时候,有时候你会很困惑,不知道它们是做什么的,以及它们之间的区别。...在我第一次作为开发人员开始工作后的很长一段时间里,我认为static::和self::是完全一样的。 parent::是什么?...假设我们有一个Model类,它有一个静态的connection属性和一个makeConnection方法。我们还可以想象我们有一个User类,它继承了Model类并覆盖了connection属性。...现在我们已经知道了self::的作用,让我们来看看static::。...什么时候使用self::或 static::? 现在我们对self::和static::之间的区别有了一个大致的了解,让我们快速介绍一下如何决定在自己的代码中使用哪一个。
read_only和super_read_only参数的区别?...,这个从库曾经出现过写入,可能需要校验从库和主库的数据一致性。...类似read_only参数,还有一个super_read_only的参数,这两个参数之间有些细微的关系,今天在这里罗列一下: 1、read_only参数和super_read_only参数默认都是关闭的...b、analyze table和optimize table语句可以正常执行,因为他们不会给表中插入语句 c、对临时表的操作是支持的。...d、插入系统日志表的操作是允许的,例如mysql.general_log和mysql.slow_log 5、如果我们设置super_read_only为on,不仅拥有super权限的账号不能进行更新,
,用来访问当前对象的非静态变量和非静态方法。...self::指向类,一般用来访问当前类的静态变量和静态方法,运行之前已经确定指向哪个类。 和 this 不同,它指向类本身,不指向任何实例化对象,一般用来访问类中的静态变量和静态方法; 上例中 new 了两个对象,并修改了其中一个对象的 name 属性,另一个对象的 name 属性值也改变了...,所以说,self 是指向当前类的,和对象无关,所有的对象共用一个值。...static 和 self 一样,都是指向类,一般都用来访问类中的静态变量和静态方法,但是又有一些不一样,具体来讲:self 写在哪个类里,实际调用的就是这个类;static 则是写在父类里,然后通过子类用到了这个
super T :表示下界是T,?都是T的父类; 2.用法 例1,我们有多个对象,其中Cat,Dog,Chicken都是extends Animal的。 Listsuper Dog> list = new ArrayList(); Listsuper Dog> list = new ArrayList(); Listsuper T> dest, Listsuper T> di=dest.listIterator(); ListIterator<?
那么 代表的是左侧小红苹果,红苹果和苹果的类中的某个类,而代表的就是苹果和水果,好吃的,吃的,的类中的某个类. 这里要注意的是或是代表的是范围内的某个特定的类,而不是范围内的所有类....super 苹果> list = new ArrayList(); list.add(苹果); //无任何问题 Listsuper 苹果> list = new ArrayList(); list.add(苹果); //无任何问题 推荐一位有走心的coder,致力于打造一款高质量技术学习社群,他专注于分享
php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别。假定我们有class Car – 它有两个方法,model和getModel。...注意,这里我们使用了关键字self。...对于self的解释 关键字“self”的工作原理是:它会调用当前类(current class)的方法。因为model方法只在class Car中定义的,所以对它来说当前类就是class Car。...static关键字和延迟静态绑定(late static binding) 在PHP5.3中,加入了一个新的特性,叫做延迟静态绑定。它可以帮我们实现多态,解决上面的问题。...php中的self和static 现在我们将例子中的self用static替换,可以看到,两者的区别在于:self引用的是当前类(current class)而static允许函数调用在运行时绑定调用类
super T> 限制消费者数据流入。 在数据流入时,apples可以使用Apple本身的实例和Apple子类放入List中,但是不允许Apple的父类存放,这就限制了数据的使用类型。...super T> dest, Listsuper T> dest, List和放置原则: 换句话说,如果一个参数化类型代表一个T生产者,使用;如果它代表T消费者,则使用super T>。...read-producer-extends,write-consumer-super.
Java 的 super 是一个引用,即一个指针,它指向的是本类内部的那个父类对象。 可以用 super.xxx 来访问父类的成员变量或成员函数。...另外 Java 的 super 有一个特殊用法,就是 super(args),看起来像个函数似的,其实不是。 这种特殊用法只限于写在构造函数的第一行,用来显示的调用父类的构造方法。 ...因为构造方法是无法通过对象加点操作法来调用的,即 super.FaterConstructor() 是不合法的,所以 Java 用 super() 这种方式调用父类构造方法。...================================= Java 中想调用父类的方法,直接用 super.method() 即可 Python 中想调用父类的方法,需要用 super(本类名...,self).method() Java 如果想调用父类的构造方法,要用 super() Python 调用父类的构造方法跟普通方法一样的,super(本类名,self).
编号 区别点 this super 1 访问属性 访问本类中的属性,如果本类没有此 属性则从父类中继续查找 访问父类中的属性 2 调用方法 访问本类中的方法 直接访问父类中的方法 3 调用构造器 调用本类的构造器
领取专属 10元无门槛券
手把手带您无忧上云