this和super的引用范围

this和super理解

this是表示对象本身的引用,super是表示父类对象引用。
当成员变量和局部变量重名时,就必须使用this关键字类区分成员变量和局部变量。当父类和子类具有相同名称的成员时,就必须使用super关键字来区分。
super关键字也有super()的形式,它表示调用父类构造函数,我们不使用super()时,系统会给出默认的一段代码来调用父类的无参数构造函数。下为super()调用父类构造函数的代码。

class Person{
 String   //人的姓名
 int age  //人的年龄
 Person(){     //定义父类无参数构造函数
    System.out.println("调用父类无参数构造函数");
 }
`Person(String name,int age){       //定义父类有参数构造函数``
      System.out.println("调用父类有参数构造函数");
          } 
  } 
  
  class Student extends Person{
   double grade;    //学生的成绩
   Student(){          //定义子类无参数构造函数
         System.out.println("调用子类无参数构造函数");
         }
Student(String name,int age, double grads) {  //定义子类无参数构造函数
      super(name,age);    //调用父类无参数构造函数
      System.out.println("调用子类无参数构造函数");
           }
   }
   public class ExtendsTest4{
     public static void main(String[]agrs){
          Student s1=new Student();
          Student s2=new Student("Tom",21,89.5);
                 }
 } 

上述代码的运行结果为:

调用父类无参数构造函数
调用子类无参数构造函数
调用父类无参数构造函数
调用子类无参数构造函数

一个构造器中最多有一句super()代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值