(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 中的self和cls 一句话描述:self是类(Class)实例化对象,cls就是类(或子类)本身,取决于调用的是那个类。...classmethod的用法 相同: @staticmethod和@classmethod都可以直接类名.方法名()来调用 区别: 从它们的使用上来看,@staticmethod不需要表示自身对象的self...B, hello', name, cls.a) 重点应关注@staticmethod和@classmethod调用本类或其他类的函数和属性的区别 例子1: 关键看第二句 subclass B, hello...和cls的区别 1、self表示一个具体的实例本身。...总结 到此这篇关于深入浅析python 中的self和cls的区别的文章就介绍到这了,更多相关python 中的self和cls内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持
我们在使用python中的类继承时,子类继承父类后,在重载父类的方法后,在方法中如果要执行父类对应的方法,一般有两种方式:super和Base(表示父类名)。...但是直接使用Base类名调用时,方法内部需要知道self是谁。那么两种方式都可以,他们有区别吗?...):绑定对象,要求type2是type的子类 这里我们就先说一下super()和super(type, obj),这是我们常用的方式 在上面的例子中我们看到super和Base的方式一样,接下来我们再看一个例子...__init__中Device1和Device2都调用了初始化方法,是这个原因吗?准确点来讲,是的,可不可以只调用一个,那么Base就只会被调用一次喽,如果只调用Device1....__init__和func是一样的,这绝不是我们所希望的类函数。那么为什么super会正确的找到要执行的函数呢?
简介 在使用PHP代码时,您可能经常会遇到parent::、static::和self::。但是当你第一次作为一个开发人员开始的时候,有时候你会很困惑,不知道它们是做什么的,以及它们之间的区别。...在我第一次作为开发人员开始工作后的很长一段时间里,我认为static::和self::是完全一样的。 parent::是什么?...假设我们有一个Model类,它有一个静态的connection属性和一个makeConnection方法。我们还可以想象我们有一个User类,它继承了Model类并覆盖了connection属性。...现在我们已经知道了self::的作用,让我们来看看static::。...什么时候使用self::或 static::? 现在我们对self::和static::之间的区别有了一个大致的了解,让我们快速介绍一下如何决定在自己的代码中使用哪一个。
****面试题:请解释一下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的用法进行讲解。
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权限的账号不能进行更新,
下面我们举个栗子: class Father { public static function getSelf() { return new self(); } public static...Son echo get_class(Father::getSelf()); // Father echo get_class(Father::getStatic()); // Father new self...这里面注意这一行 get_class(Son::getStatic()); 返回的是 Son 这个 class, 可以总结如下: self 返回的是 new self 中关键字 new 所在的类中...,比如这里例子的 : public static function getSelf() { return new self(); // new 关键字在 Father 这里 } 始终返回 Father...和 new static 是返回相同的结果。
本文实例讲述了php 中self,this的区别和操作方法。...利用OOP的思想进行PHP的高级编程,对于提高PHP编程能力和规划web开发构架都是很有意义的。 这里我主要谈的是this,self关键字之间的区别。从字面上来理解,分别是指这、自己。...我们这里频繁使用指针来描述 因为经常用框架的缘故,所以对php底层的一些运行机制和方法都不会了,所以最近比较喜欢研究这些底层的东西,写的东西虽然不是很好,但是自己一步步实地操作过来的,理解起来也比较容易...} } $str = new self_test(); echo $str- tank(); 页面输出: tancy 二.this 1.this可以调用本类中的方法和属性,也可以调用父类中的可以调的方法和属性...,可以说除过静态和const常量,基本上其他都可以使用this联络 class self_test { public $public; private $private; protected
那么 代表的是左侧小红苹果,红苹果和苹果的类中的某个类,而代表的就是苹果和水果,好吃的,吃的,的类中的某个类. 这里要注意的是或是代表的是范围内的某个特定的类,而不是范围内的所有类....super 苹果> list = new ArrayList(); list.add(苹果); //无任何问题 List list = new ArrayList(); list.add(苹果); //无任何问题 推荐一位有走心的coder,致力于打造一款高质量技术学习社群,他专注于分享
,用来访问当前对象的非静态变量和非静态方法。...self::指向类,一般用来访问当前类的静态变量和静态方法,运行之前已经确定指向哪个类。 <?...和 this 不同,它指向类本身,不指向任何实例化对象,一般用来访问类中的静态变量和静态方法; 上例中 new 了两个对象,并修改了其中一个对象的 name 属性,另一个对象的 name 属性值也改变了...,所以说,self 是指向当前类的,和对象无关,所有的对象共用一个值。...static 和 self 一样,都是指向类,一般都用来访问类中的静态变量和静态方法,但是又有一些不一样,具体来讲:self 写在哪个类里,实际调用的就是这个类;static 则是写在父类里,然后通过子类用到了这个
super T :表示下界是T,?都是T的父类; 2.用法 例1,我们有多个对象,其中Cat,Dog,Chicken都是extends Animal的。 List list = new ArrayList(); List list = new ArrayList(); List dest, List di=dest.listIterator(); ListIterator<?
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允许函数调用在运行时绑定调用类
领取专属 10元无门槛券
手把手带您无忧上云