super关键字

super调用的是父类中的参数     而this则是优先调用子类中的参数

 

//super 调用的是父类即下面输出的是父类中的name 即是程婷婷

 System.out.println(super.name+"老师正在教Java"+"  年龄"+age);

public void JavaTeacher() {

 //默认情况下单独的使用对象的属性时都隐藏了this

 //this优先调用的是子类中的参数也就是下面输出的是子类中参数 name 婷婷

  System.out.println(name+"老师正在教Java"+"  年龄"+age);

  

===========================================

  class ManyTeacher {

String name="程婷婷";

int age=22;

public void sleep() {

System.out.println("老师正在睡觉");

}

}

 class JavaTeacher extends ManyTeacher{

 String name="婷婷";

int age=22;

public.out.println("Java老师正在睡觉")

 public void JavaTeacher() {

 //默认情况下单独的使用对象的属性时都隐藏了this

 //this优先调用的是子类中的参数也就是下面输出的是子类中参数 name 婷婷

  System.out.println(name+"老师正在教Java"+"  年龄"+age);

  

//super 调用的是父类即下面输出的是父类中的name 即是程婷婷

 System.out.println(super.name+"老师正在教Java"+"  年龄"+age);

this.sleep();

super.sleep();

 }

 }

 class Teacher{

 public static void main(String [] args) {

 JavaTeacher jc=new JavaTeacher();

jc.JavaTeacher();

jc.sleep();

婷婷老师正在教Java  年龄22

程婷婷老师正在教Java  年龄22

Java老师正在睡觉

老师正在睡觉

Java老师正在睡觉

 

 }

 }

 

 

 

 

 

 

 class ManyTeacher {

String name="程婷婷";

int age=22;

public void sleep() {

System.out.println("老师正在睡觉");

}

}

 class JavaTeacher extends ManyTeacher{

 String name="婷婷";

int age=22;

/*

public void sleep() {

System.out.println("Java老师正在睡觉");

}

*/

 public void JavaTeacher() {

 //默认情况下单独的使用对象的属性时都隐藏了this

 //this优先调用的是子类中的参数也就是下面输出的是子类中参数 name 婷婷

  System.out.println(name+"老师正在教Java"+"  年龄"+age);

  

//super 调用的是父类即下面输出的是父类中的name 即是程婷婷

 System.out.println(super.name+"老师正在教Java"+"  年龄"+age);

 this.sleep();

 super.sleep();

 }

 }

 class Teacher{

 public static void main(String [] args) {

 JavaTeacher jc=new JavaTeacher();

jc.JavaTeacher();

jc.sleep();

 

 }

 }

 

婷婷老师正在教Java  年龄22

程婷婷老师正在教Java  年龄22

老师正在睡觉

老师正在睡觉

老师正在睡觉

 

 

你可能感兴趣的:(super关键字)