package M6super关键字;/* * super和this关键字都可以用来覆盖Java语言的默认作用域,使被屏蔽的方法或变量可见。 * * 注: * 1、super和this关键字只能在实例方法或构造方法中使用,但不能在静态方法中使用。故也不能再main方法中使用 * 2、super是指当前父类对象的内存地址 * * super关键字使用情况: * 1、类的构造方法中,通过super语句调用父类的构造方法 * 2、在子类中访问父类被屏蔽的方法和属性。 * * super和this关键字的区别: * 1、super:调用基类中的某一个构造方法(应为构造方法的首行) * this:调用本类中另一种形式的构造方法(应为构造方法的首行) * 2、super:引用当前对象的直接父类中的成员(用来访问父类中被隐藏的成员变量或成员方法) * this:引用本类中的成员变量或成员方法。 * 3、super和this不能出现在一个构造函数里。 * 4、super和this均不能再static环境中使用。 * * */class Base { public Base() { System.out.println("父类的构造方法"); } public void method() { System.out.println("父方法!"); }}public class Sub extends Base { public Sub() { super(); //调用父类的构造方法,一定要放在方法的首句。 System.out.println("子类的构造方法"); } public void method() { System.out.println("子方法"); } public void test() { super.method();//调用父类的method方法 this.method();//调用Sub实例的method方法 } public static void main(String[] args) { Sub s = new Sub(); //s.method(); s.test(); }}