this通常指当前对象,它有两个用处: 1.利用this引用当前对象的某个方法或某个成员; 2.调用当前对象的其他构造方法
如果想引用父类的某种东西或调用父类的某个构造方法用super
this和super调用构造方法时,根据其后所带的参数来确定调用的具体是哪个构造方法,如super()表示调用的是父类的无参的构造方法
另外,在静态方法中不能用this,因为静态方法不属于任何特定的对象,它只属于当前类,而this是属于当前类的对象的
public class Teacher extends Person { PRivate String name = "tom"; public Teacher() { super(2); System.out.println("this is a teacher"); } public static void main(String[] args) { Teacher teacher = new Teacher(); System.out.println(teacher.name); }}class Person { public Person() { System.out.println("this is a Person"); } public Person(int i) { System.out.println("Person"); }}输出结果为
在子类Teacher的构造方法中调用的是父类带参数的构造方法,而且super()必须写在子类构造方法的第一行,否则编译报错;在main方法中如果使用this.name,编译时会报错。
新闻热点
疑难解答