Java学习记录(五)super关键字的用法

在上次的课程中学习到Java的继承,在Java中当子类想使用父类的成员时就需要用到super这个关键字,而super在Java中有两种用途。

一、

第一种用途是在子类的构造方法中,super关键字可以调用父类的构造方法将参数传递给它。

其使用语法是:super(参数)

而需要注意的是:super关键字的使用必须在子类构造方法的第一条语句。来分析一个例子:

父类:

public class Person {
	public String name;
	public char sex;
	private int age;
	
	public Person(String name){
		this.name = name;
	}
	public int setAge(int age){
		return this.age = age;
	}
	public int getAge(){
		return this.age;
	}
	public void sleep(){
		System.out.println("人需要休息");
	}
}
子类:

public class Student extends Person {
	public Student(){
		//super("Tom");
	}
	public void sleep(){
		System.out.println("学生需要休息");
	}
	public void test(){
		setAge(10);
		System.out.println(getAge());
		super.sleep();
	}
}
启动函数:

public class Start {
	public static void main(String[] agrs){
		Student s = new Student();
		System.out.println(s.name);
		s.test();
	}
}

在父类中,定义了一个有形参的构造方法,在子类中定义了一个无参的构造方法,在编译时会报错。因为在创建对象,子类实例化时,子类会默认调用父类的无参构造,这时就有两个解决方案。一是在父类中敲进去无参的构造方法,二是需要将子类中注释的语句敲进去,由此来实现子类的实例化。


二、

而第二种用途:是当父类和子类有同名成员时,子类会默认访问本类的成员。为了使子类访问父类中的同名成员就需要用到关键字super。

使用语法:super.成员名

接着继续拿上面这个例子来分析:

父类中有一成员方法sleep(),子类也有一个同名的方法sleep(),当需要使用父类的sleep()方法时就通过语句:super.sleep();来调用。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值