在Java中super和this的区别
来源:互联网 发布:做网络直播需要什么设备 编辑:程序博客网 时间:2024/06/05 23:56
在Java中super和this的区别
摘要:在Java中我们会时常用到super及this的用法,现在我主要来区分一下super.和this.及superL()及this()之间的区别,来对它们的认识和了解:
1.this的用法在Java中:
①:this.:this加点指此时代表当前对象,能操作当前类里面的所有属性及方法以及父类继承而来能被访问修饰符允许的属性和方法。
super.:此时指代当前对象类的父类对象部分,不能操作到本类的属性和方法,能操作到父类的能被父类访问修饰符允许的属性和方法,只有当本类中调用被重写前的效果时使用super.的方法。
语法:this.成员名 或者 this. 方法名
例:这是this加点使用
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public
class
DemoThis {
private
String name;
private
int
age;
public
DemoThis() {
this
.print();
// 你可以加上this来调用方法,
}
public
DemoThis(String name,
int
age) {
this
.name = name;
this
.age = age;
//这里就必须使用this加点的方法来区分,this.name就指代当前的属性name;
}
public
void
setName(String name) {
this
.name = name;
// 此处必须指明你要引用成员变量
}
public
void
setAge(
int
age) {
this
.age = age;
}
public
void
print() {
System.out.println(
"Name="
+ name +
" Age="
+ age);
// 在此行中并不需要用this,
// 因为没有会导致混淆的东西
}
}
例:super加点的使用,
1
2
3
4
5
6
7
8
9
10
11
package
com.lov.lianxiText;
public
class
DemoThis {
//父类
private
String name;
private
int
age;
public
DemoThis() {
}
public
void
print() {
System.out.println(
"哈哈哈哈。。。。。"
);
}
}
1
2
3
4
5
6
7
8
9
10
11
package
com.lov.lianxiText;
public
class
Demo
extends
DemoThis {
//子类
public
Demo(){
}
public
void
print(){
super
.print();
//只有这个时候用super.方法,其他我们基本用this.方法
System.out.println(
"嘿嘿嘿......."
);
}
}
总结:有上面我们可知道,this.的使用范围要比super.的范围更大,除了上面要看重写前的效果能super,我们都是用this.的方法。
2:this()与super()
①this()和super()都是使用只能使用于构造方法中,
②this()调用本类的构造,如果括号内有形参,则是调用本类的与之相对应参的构造方法;super()调用父类指定的构造方法,
③都只能写在构造方法的第一句;
④super()可以不写,在不写的时候会默认调用父类的无参构造,
⑤this()与super()不能共存,两者只能使用一个。
阅读全文
0 0
- 在Java中super和this的区别
- 在Java中super和this的区别
- Java中this和super的区别
- java中this和super的区别
- java中super和this的区别
- java中 this和super的区别
- Java中this和super的区别
- Java中this和super的区别
- java中this和super的区别
- Java中this和super的区别
- Java中this和super的区别
- JAVA中super和this的区别和用法
- java中关键词this和super的区别和举例;
- java中this和super的区别和联系
- java中this 和super 的区别和用法
- java中super的用法和与this的区别
- java中super的用法和与this的区别
- Java中this和super关键字区别
- 宏定义函数和普通函数
- 设计模式---------单例模式
- 机器学习学习中评价模型好坏的标准
- 最小生成树
- 使用定位获取当前位置信息
- 在Java中super和this的区别
- Heidi and Library (medium)
- java中,一个类实现某个接口,必须重写接口中的所有方法吗???
- python exec 和 eval 函数的用法
- 【Shawn-LeetCode】2.Add Two Numbers
- Windows下安装Tensorflow
- 端口占用解决方案
- React Native Application和Activity源码分析
- 问题求解,关于java随机生成指定长度的字符串