self, super理解】的更多相关文章

self是方法参数列表中的第一个参数,是运行时决定的. super是编译器符号,是编译时决定的.super的含义为从父类开始寻找相应的方法,父类在编译的时候就已经决定了. 一个关键点:super并不代表父类,只是代表从父类开始寻找方法,传入方法的前两个参数还是self和_cmd 附:一段编译成c++的[super speak]代码 static void _I_Boy_speak(Boy * self, SEL _cmd) { ((void (*)(__rw_objc_super *, SEL)…
public class Test { public static void main(String [] args){ Plate<? extends Fruit> p = new Plate<Apple>(new Apple()); Food food = p.get(); Fruit fruit = p.get(); //ERROR // p.set(new Fruit()); // p.set(new Orange()); // p.set(new Apple()); //…
一.Java中方法的参数传递(重点) Java中参数传递都是值传递 Java中的值分两种: 1.如果传递的参数是基本数据类型: 传递的值就是基本数据类型的值. 传递的时候,其实是把基本数据类型的值,复制一份,传递到方法内部 2.如果传递的参数是引用数据类型: 传递的值是对象的地址值. 把地址值复制一份传递给方法的参数. 二.面向对象特征2:继承 面向对象三大特征:1.封装 2.继承 3.多态 继承的语法: extends 被继承的类 继承的特点: 1.在继承的时候,被继承的类我们称之为父类或超类…
1.super理解为:父类的 2.super可以用来调用:属性.方法.构造器 3.super的使用:调用属性和方法 3.1 我们可以在子类的方法或构造器中.通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法.但是,通常情况下,我们习惯省略"super."3.2 特殊情况:当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用"super.属性"的方式,表…
super 关键字 this和super的区别 访问成员的区别 this关键字 this特点 this使用场景 static关键字 例子 访问权限修饰符 特点 总结: 四个修饰符的特点 访问权限修饰符的宽严关系 final关键字 用法 自定义常量 final修饰类 final修饰成员变量 final修饰局部变量 final修饰成员方法 super 关键字 this和super的区别 this代表当前对象,super可以理解为父类对象 既然super理解为一个父类对象,那么super应该可以用访问…
day11 Eclipse中的快捷键: * 1.补全代码的声明:alt + / * 2.快速修复: ctrl + 1 * 3.批量导包:ctrl + shift + o * 4.使用单行注释:ctrl + / * 5.使用多行注释: ctrl + shift + / * 6.取消多行注释:ctrl + shift + \ * 7.复制指定行的代码:ctrl + alt + down 或 ctrl + alt + up * 8.删除指定行的代码:ctrl + d * 9.上下移动代码:alt +…
Java 中类似 <T extends Comparable<? super T>> 这样的类型参数 (Type Parameter) 在 JDK 中或工具类方法中经常能看到.比如 java.util.Collections 类中的这个方法声明: public static <T extends Comparable<? super T>> void sort(List<T> list) 我知道 extends 和 super 这样的关键字在泛型…
this和super是Java的两个关键字. 先明确一个问题,有人错误的认为它们是对象里的“属性”,这只能怪老师没有讲清楚计算机的本质了.因为计算机的处理器只能用指令去处理数据,像C语言之类的容易理解,就是一个个的方法调用,对数据进行处理.那面向对象语言,确实是用对象调用方法啊,怎么回事? 好办,编译器耍个花样,将对象当做方法的参数就是了.比如 class Test{ public void test(){} } Test t = new Test(); t.test(); 计算机怎么处理呢?…
或许你理解self和super都是指的是类的对象   self指的是本类的对象,而super指的是父类的对象,但是事实情况呢,可能有些和你想象的不一样? 简单看下下面例子: @interface Person:NSObject { NSString* name; } - (void) setName:(NSString*) yourName; @end @interface PersonMe:Person { NSUInteger age; } - (void) setAge:(NSUInteg…
原文地址:https://www.zhihu.com/question/20040039 针对你的问题,答案是可以,并没有区别.但是这题下的回答我感觉都不够好. 要谈论 super,首先我们应该无视 "super" 这个名字带给我们的干扰. 不要一说到 super 就想到父类!super 指的是 MRO 中的下一个类!不要一说到 super 就想到父类!super 指的是 MRO 中的下一个类!不要一说到 super 就想到父类!super 指的是 MRO 中的下一个类! 一说到 su…