扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
this指向的是对象,而不是类。
创新互联建站专注于莲湖企业网站建设,成都响应式网站建设公司,成都商城网站开发。莲湖网站建设公司,为莲湖等地区提供建站服务。全流程按需求定制设计,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
一个类可以生成许多对象,比如:
Mammal m1=new Mammal();
Mammal m2=new Mammal();
m1.taisheng(); //m1调用了这个方法,当执行到this时,this指的就是m1
m2.taisheng(); //这里执行到this时,指的是m2
一、指代不同
1、super:是当前对象里面的父对象的引用。
2、this:指的是当前对象的引用。
二、调用函数不同
1、super:调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 。
2、this:调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)。
三、引用对象不同
1、super:引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)。
2、this:代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)。
参考资料来源:百度百科-Java关键字super
参考资料来源:百度百科-java关键字
不管什么样都行,你记住,this.XXX都是从子类里调用的,调用的也都是子类的东西,不会调用父类的东西,如果这时子类没有XXX,那么就会出错。就算在继承里,父类有的,子类没有重新定义的方法,子类也是从父类继承过来的,也就是子类的东西了。要调用父类的东西,使用super.YYYY就没问题了,坚信这样的原则,不会让你越学越乱!
因为子类继承了父类的fun()方法,所以子类也会有一个fun()方法,
但是无法继承父类的私有方法say()方法,所以就不会重写say()方法
而子类又没有重写父类的fun()方法,所以子类中的fun()方法还是调用的是父类中的say()方法,所以就会输出父类中的内容
希望对你有帮助
this("未知名",0,"未知系");必须出现在构造方法的第一行,目的是在一个构造方法中调用属于本类的另一个构造方法
this("未知名",0,"未知系");调用的是构造方法public Student_mo(String n,int a,String d){
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流