本文主要向大家介绍了JAVA语言开发中this和super区别及诶下,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。
以前一直以为super和this引用时同一个类似的概念,但是实际上,this是一个对象的引用,而super只是一个指示编译器调用超类方法的特殊关键字。
看例子:
public class TestThisSuper {
public static void main(String[] args) {
Son son=new Son("BBB",12);
son.say();
System.out.println(son);
}
}
class Father{
public String name;
private int age;
public Father(){
}
public Father(String name,int age){
this.name=name;
this.age=age;
}
public void say(){
System.out.println("Father");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
class Son extends Father{
public Son(String name,int age){
super(name,age);
}
public void say(){
System.out.println("Son:"+getName()+getAge());
System.out.println(this);
}
}
`
运行结果:
Son:BBB12
Son@4554617c
Son@4554617c
说明this是一个对象的引用。
在Son类中say()方法中加句话
class Son extends Father{
public Son(String name,int age){
super(name,age);
}
public void say(){
System.out.println("Son:"+getName()+getAge());
System.out.println(this);
System.out.println(super);
}
}
`
有问题,编译都通过不过。这个应该是this和super最大的区别了。
this用途:一是引用隐式参数,二是调用该类的其它的构造函器。
super用途:一个调用超类的方法,二是调用超类的构造函器。
在调用构造器的时候,this和super的使用方式很相似。调用构造器的语句只能作为另一构造器的第一条语句出现。构造参数既可以传给本类的其它构造器,也可以传给超类的构造器。
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!