在java中this表示当前类中的对象,super则表示父类中的对象。比如当前对象的某个方法,或当前对象的某个成员,你便可以利用this来实现这个目的,当然,this的另一个用途是调用当前对象的另一个构造方法,如果你想引用父类的某种东西,则选super。

class Person {

    public static void prt(String s) {
System.out.println(s);
}
//父类构造函数1
Person() {
prt("A Person.");
}
//父类构造函数2
Person(String name) {
prt("A person name is:" + name); }
} public class Chinese extends Person {
Chinese() {
super(); // 1.调用父类构造函数(1)
prt("A chinese.");// (4)
} Chinese(String name) {
super(name);// 2.调用父类具有相同形参的构造函数(2)
prt("his name is:" + name);
} Chinese(String name, int age) {
this(name);// 3.调用当前类带形式参数的构造函数Chinese(String name)
prt("his age is:" + age);
} public static void main(String[] args) {
Chinese cn = new Chinese();
cn = new Chinese("kevin");
cn = new Chinese("kevin", 22);
}
}

 

 在这段程序中,this和super不再是像以前那样用“.”连接一个方法或成员,而是直接在其后跟 
上适当的参数,因此它的意义也就有了变化。super后加参数的是用来调用父类中具有相同形式的 
构造函数,如1和2处。this后加参数则调用的是当前具有相同参数的构造函数,如3处。当然,在 
Chinese的各个重载构造函数中,this和super在一般方法中的各种用法也仍可使用,比如4处,你 
可以将它替换为“this.prt”(因为它继承了父类中的那个方法)或者是“super.prt”(因为它 
是父类中的方法且可被子类访问),它照样可以正确运行。但这样似乎就有点画蛇添足的味道 
了。 
一句话------this通常指代当前对象,super通常指代父类

关于java中super()和this()的更多相关文章

  1. java中super()和this()、super和this的区别

    1.super()和this()区别: super():调用父类无形参的构造方法: super(形参):调用父类中某个带形参的构造方法: this(形参):调用本类中另一种形式的构造方法: 注意:放在 ...

  2. java中super的两种用法

    通过用static来定义方法或成员,为我们编程提供了某种便利,从某种程度上可以说它类似于C语言中的全局函数和全局变量.但是,并不是说有了这种便利,你便可以随处使用,如果那样的话,你便需要认真考虑一下自 ...

  3. Java中super的几种用法并与this的区别

    1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位. class Base { Base() { System.out.println("Base"); ...

  4. 在Java中super和this的区别

    摘要:在Java中我们会时常用到super及this的用法,现在我主要来区分一下super.和this.及superL()及this()之间的区别,来对它们的认识和了解: 1.this的用法在Java ...

  5. java中super()和this()浅析

    <span style="font-size:18px;">本质:这两个都是调用构造方法的方法.</span> 在java中,super()是在当前类的构造 ...

  6. java中super关键字

    1.子类的构造函数如果要引用super的话,必须把super放在函数的首位,如果想用super继承父类构造的方法,但是没有放在第一行的话,那么在super之前的语句,肯定是为了满足自己想要完成某些行为 ...

  7. 【转】Java中super和this的几种用法与区别

    1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位.   class Base {   Base() {   System.out.println("Base&qu ...

  8. java中super的用法

    在Java中,super关键字有2个用法,一个是访问父类的函数,一个是访问父类的变量,总体来说,就是一个功能,访问父类的成员. 代码如下: class Person { String name ; i ...

  9. Python面试题之Python和Java中Super方法的区别

    python 的 super 是一个函数,需要两个参数,第一个参数是类,第二个参数是实例,返回值是一个类对象. 其意义是:站在参数2这个实例的角度看去, 参数1这个类的‘父亲’是谁,把‘父亲’返回. ...

随机推荐

  1. OpenGL的glOrtho平行投影函数详解[转]

    glortho函数可以将当前的可视空间设置为正投影空间.基参数的意义如图,如果绘制的图空间本身就是二维的,可以使gluOrtho2D.他的使用类似于glOrtho 原型是: void glOrtho( ...

  2. --tags --follow-tags 的区别

    --tags    All refs under refs/tags are pushed, in addition to refspecs explicitly listed on the comm ...

  3. 图 - 从零开始实现by C++

    参考链接:数据结构探险之图篇

  4. Unity5中叹为观止的实时GI效果

    http://www.manew.com/thread-43970-1-1.html 今天为大家分享unity与Alex Lovett共同使用unity5制作的Shrine Arch-viz Demo ...

  5. 使用Beanstalkd_console

    作用:可以将 beanstalkd 的队列信息展示在图形化的操作界面一样,这样不仅给我么查看队列信息有很大的帮助,也可以形象地理解队列任务具体内容 使用操作:(前提条件是前面的队列能正常执行,) 首先 ...

  6. bootstrap--双日历插件

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. 你不知道的JavaScript--数组进阶全掌握

    转载 http://blog.csdn.net/i10630226/article/details/49764537 在程序语言中数组的重要性不言而喻,JavaScript中数组也是最常使用的对象之一 ...

  8. JS回调函数(callback)

    在使用Jquery的时候,用到Callback(),回调函数的概念.而且很多. 比如: $.ajax({ url:"test.json", type: "GET" ...

  9. JQ添加移除css样式

    1. addClass() - 添加CSS类 $("#target").addClass("newClass"); //#target 指的是需要添加样式的元素 ...

  10. FireFox 一键清理缓存

    https://addons.mozilla.org/zh-CN/firefox/addon/empty-cache-button/