1.this和super都可以用于任何的类中;
2.this:(1)永远指向本类对象的空间,它由JVM自动赋值,
(2)它可以调用本类对象的成员属性、成员方法、构造方法
(3)可以在本类的一个构造方法中调用另一个构造方法;
注意:当在一个构造方法中使用this调用另一个构造方法时,this语句必须写在这个构造方法的第一句有效语句。
3.super:
(1)一般用于"子类中";
(2)它永远指向本类的父类,它由JVM自动赋值;
(3)它可以调用父类的成员变量、成员方法、构造方法;
(4)当我们实例化一个子类对象时,JVM会先实例化此类的父类,并调用父类的"无参的构造方法";
(5)注意:①当父类没有提供"无参构造方法"时而提供了其它带参的构造方法,那么JVM就不会为父类添加一个无参的构造方法,
当我们实例化子类对象时,JVM会自动去实例化它的父类,如果父类中没有无参构造方法,JVM就不知道怎么调用带参
的构造方法,所以我们在子类中,必须显示的使用super() 去调用父类中带参构造方法;
② 当在子类的构造方法中,使用super去调用父类的构造方法时,super语句必须方法第一句有效语句。
4.注意:在一个构造方法中,不能同时this()和super()。因为都需要在第一句话;
|
|