Java基础6-this和super的区别
2017-06-23 22:51
309 查看
this和super的区别:
this代表本类对类的应用;
super代表父类存储空间的标识(可以理解为父类引用,可以操作父类成员)
class Father{
public int num=10;
}
class Son extends Father{
public int num=20;
public void show(){
int num=30;
System.out.println(num);
System.out.println(this.num); //20
System.out.println(super.num); //10
}
}
public class Demo1 {
public static void main(String[] args) {
Son son=new Son();
son.show();
}
}
打印内容:
使用:
1、调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
2、调用构造方法
this(...) 调用本类的构造方法
super(...) 调用父类的构造方法
3、调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法
继承中构造方法的关系:
A、子类中所有的构造方法默认都会访问父类中空参数的构造方法,
因为子类会继承父类中的数据,一定要完成父类数据的初始化
B、子类每一个构造方法的第一条语句默认都是super();
package com.windy.java;
class Father{
public Father(){
System.out.println("Father的无参构造方法");
}
public Father(String name){
System.out.println("Father的带参构造方法");
}
}
class Son extends Father{
public Son(){
//super();//默认就有
System.out.println("son的无参构造方法");
}
public Son(String name){
//super();//默认就有
System.out.println("son的带参构造方法");
}
}
public class Demo1 {
public static void main(String[] args) {
Son son=new Son();
System.out.println("--------------");
Son son2=new Son("Clare");
}
}
打印:
this代表本类对类的应用;
super代表父类存储空间的标识(可以理解为父类引用,可以操作父类成员)
class Father{
public int num=10;
}
class Son extends Father{
public int num=20;
public void show(){
int num=30;
System.out.println(num);
System.out.println(this.num); //20
System.out.println(super.num); //10
}
}
public class Demo1 {
public static void main(String[] args) {
Son son=new Son();
son.show();
}
}
打印内容:
使用:
1、调用成员变量
this.成员变量 调用本类的成员变量
super.成员变量 调用父类的成员变量
2、调用构造方法
this(...) 调用本类的构造方法
super(...) 调用父类的构造方法
3、调用成员方法
this.成员方法 调用本类的成员方法
super.成员方法 调用父类的成员方法
继承中构造方法的关系:
A、子类中所有的构造方法默认都会访问父类中空参数的构造方法,
因为子类会继承父类中的数据,一定要完成父类数据的初始化
B、子类每一个构造方法的第一条语句默认都是super();
package com.windy.java;
class Father{
public Father(){
System.out.println("Father的无参构造方法");
}
public Father(String name){
System.out.println("Father的带参构造方法");
}
}
class Son extends Father{
public Son(){
//super();//默认就有
System.out.println("son的无参构造方法");
}
public Son(String name){
//super();//默认就有
System.out.println("son的带参构造方法");
}
}
public class Demo1 {
public static void main(String[] args) {
Son son=new Son();
System.out.println("--------------");
Son son2=new Son("Clare");
}
}
打印:
相关文章推荐
- java基础のsuper和this区别和联系
- java基础学习总结——super的几种用法并与this的区别
- java基础:面向对象(this和super的区别和应用)
- Java基础——super的几种用法并与this的区别
- java语言基础(32)——面向对象(this和super的区别和应用)
- java基础--super和 this、Override与Overroad关键字区别
- java基础(八)Math/代码块/继承成员方法指南的关系/继承中成员变量之间的关系/方法的重写/继承中构造方法之间的关系/this和super的区别
- 黑马程序员——JAVA基础之final this.和super.的区别
- java中 this 与 super 的区别
- java中super()与this()的区别
- 【转载】Java中this与super的几种用法与区别
- 【JAVA学习】This和super用法及区别
- Java中super的几种用法并与this的区别
- java语言中this于super关键字的区别
- JAVA中super与this的区别
- Java中super的几种用法并与this的区别
- Java中super的几种用法并与this的区别
- Java中super的几种用法并与this的区别
- My_Java之笔记(7)- super区别于this
- JAVA面向对象基础:继承、变量隐藏、方法重写、包、修饰符、this、super