Java之super关键字

1、1 使用super关键字。

      子类可以继承父类的非私有成员变量和成员方法(不是以private关键字修饰的)作为自己的成员变量和成员方法。但是,如果子类中声明的成员变量和父类中的成员变量同名,则子类不能继承父类的成员变量,此时称子类的成员变量隐藏了父类的成员变量。如果子类中声明的成员方法与父类的成员方法同名,并且方法的返回值及参数个数和类型也相同,则子类不能继承父类的成员方法,此时称子类的成员方法重写了父类的成员方法。(注意:虽然这儿的返回值、参数个数和类型相同,但方法里面实现代码块不同)。这时,如果想在子类中访问父类中被子类隐藏的成员方法或变量,就可以使用super关键字。

      super关键字的两个作用:

                 作用A:调用父类的构造方法。

                          子类可以调用由父类声明的构造方法。但是必须在子类的构造方法中使用super关键字来调用。语法格式如下:

super([参数列表]);

                          如果父类的构造方法中包括参数,则参数列表为必选项,用于指定父类构造方法的入口参数。

                          例:在子类中调用父类的构造方法。


package classandobject;

public class Beast {                    //父类

	String skin =""; 		//成员变量
	
	public Beast(){			//默认构造方法
	}
	
	public Beast (String strSkin) {
		skin = strSkin;         //带参数的构造方法
	}
	public void move() {
		System.out.println("跑。。。");  //成员方法
	}

}

package classandobject;

public class Tiger extends Beast {
	public Tiger () {       //子类使用父类的带参数的构造方法
		super("条纹");
	}
	
}


                 作用 B:操作被隐藏的成员变量和被重写的成员方法。

                                如果想在子类中操作父类中被隐藏的成员变量和被重写的成员方法,也可以使用super关键字。语法格式如下:

super.成员变量名

super.成员方法名([参数列表])

                                例:如果想在子类Tiger的方法中改变父类Beast的成员变量skin的值,可以使用如下代码:

package classandobject;

public class Tiger extends Beast {
	
	public Tiger () {       //使用父类的带参数的构造方法
		super.skin="条纹";    //等效于super("条纹");
		super.move();	     //注意:super.move()方法不能在Tiger()带参构造方法外
	}
	
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值