super&this

简介: 类在继承时会用到this和super,this通常指当前对象,super则指父类的。

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。
this.变量 调用的当前对象的变量,
this(参数) 调用(转发)的是当前类中的构造器,
this访问本类中的属性,如果本类没有此属性则从父类中继续查找,
this访问本类中的方法,如果本类没有此方法则从父类中继续查找,
this调用本类构造,必须放在构造方法的首行,
this表示当前对象。
用法有3种:1直接引用,2形参与成员名字重名,用this来区分,3引用构造函数

super是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。
super.变量 直接调用的是父类中的变量
super(参数) 用于确认要使用父类中的哪一个构造器
super访问父类中的属性
super访问父类中的方法
super调用父类构造,必须放在子类构造方法首行
super不能表示当前对象
super也有三种用法:1直接引用,2子类中的成员变量或方法与父类中的成员变量或方法同名,3引用构造函数

this() 和super()都只能写在构造函数的第一行
this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
this和super不能用于static修饰的变量,方法,代码块;因为this和super都是指的是对象(实例)。
从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

目录
相关文章
定义类,super的使用,super的使用
要求: a.需要有一个类变量 b.需要有>=2个的对象变量 c.定义一个方法:打印类变量和对象变量 d.使用print打印对象->输出为This is a object e.实例化两个对象:且两个对象相加等于2 f.为对象添加一个临时变量temp_var
54 0
|
Java
关键字super
关键字super
64 0
|
Java
关键字:super
关键字:super
60 0
14-self与super以及isMemberOfClass与isKindOfClass的区别
14-self与super以及isMemberOfClass与isKindOfClass的区别
50 0
|
Java Android开发
构造器里面的super()有什么用?到底写不写?
平时写的单独一个类如果没有直接继承父类就是直接继承的Object,有父类就是间接继承的Object,因为父类会继承Object,java的所有类都是Object的子类,哪怕不写super(),也会默认调用的父类的空构造器。
115 0
|
Java Maven
super.parseUnknownField()找不到
super.parseUnknownField()找不到
252 0
override 指示符
override 指示符
79 0
|
开发者 Python
Super()|学习笔记
快速学习 Super()
104 0