java之super关键字

super

含义:在子类中访问父类成员。

作用:

  • 访问父类对象中的字段 及 普通方法
class User{//父类User
	String name = "小花花";
	void login(){
		System.out.println("User login");
	}
}
class StudentUser extends User{//子类 StudentUser 
	String name = "中花花";
	void eat(String name){
		System.out.println("super.name = "+super.name);//super访问父类字段
		super.login();//super访问父类普通方法
		System.out.println("name = "+name);
		System.out.println("this.name = "+this.name);	
	}
}
  • 在子类的构造方法体第一句访问父类的构造方法

super();	//调用父类无参的构造方法
super(123); 	//掉用父类中的一个有参构造方法
  • 如果子类的构造方法,没有显示的写出对于父类构造方法的使用,那么子类构造方法的第一句默认调用父类的无参数构造方法;如果显示的写出了对于父类构造方法的调用,默认的调用就不存在了

class User{
	User(){
		System.out.println("隐式无参父类User");
	}
	User(String name){
		System.out.println("显示有参式父类User");
	}
}
class StudentUser extends User{
	StudentUser(){
            super("调用有参");//这里会调用父类中的有参构造方法
    }
}
class Teacher extends User{
                            //这里会有隐式调用(super();)父类的无参构造方法
}

注意:1.无论如何,子类的构造方法一定会存在对于父类构造方法的调用

           2.必须放在子类构造方法的第一句(所以也就不能够于this共存)

与this的区别:

  • this指代的是当前对象,持有该对象的地址值
  • super指代的是子类中的父类对象,不持有父类对象的地址值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值