super关键字的简单使用

3 篇文章 0 订阅
super调用父类的构造方法

java中子类不继承父类的构造方法,但是我们需要使用到父类的构造方法时可以利用super关键字来调用父类的构造方法,super调用父类的构造方法例子如下

package test;
class Student{
	int number;
	String name;
	Student(){
	}    //定义一个无参数的构造方法 (建议保留无参数的构造函数,避免利用super关键字时忘记写参数)
	Student(int number,String name){
		this.name = name;
		this.number = number;
	}   // 定义一个含两个参数的构造方法 给number和name初始化
	public int getNumber() {
		 return number;
	}
	public String getName() {
		return name;
	}
}
//建立一个继承Student的UniverStudent类
class UniverStudent extends Student{  
	boolean isMarriage;   //没有初始化赋值 默认为false
	UniverStudent(int number,String name){
		super(number,name);   //调用父类的构造方法初始化number和name
	}
	public boolean getIsMarriage() {
		return  isMarriage;
	}
}

public class Super {
	public static void main(String args[]) {
	//建立一个对象 a
	UniverStudent a = new UniverStudent(2017217954,"leechoy") ;
	int number = a.getNumber();
	String name = a.getName();
	boolean marriage = a.getIsMarriage();
	System.out.print(name+"的学号是:"+number);
	if(marriage==true) {
		System.out.println("已婚!");
	}
	else
		System.out.println("未婚!");
	}
}

运行结果:

leechoy的学号是:2017217954未婚!
super调用隐藏的变量和方法

java中创建一个对象时,除了声明的成员变量和继承的成员变量给分配内存外,被隐藏的成员变量也要分配内存,但该内存不属于任何一个对象,这些内存必须用super调用,调用时利用点操作.来调用变量和方法例子如下:

class Sum{
	int n;
	double f() {
		double sum = 0;
		for(int i =1;i<=n;i++)
			sum+= i;
		return sum;
	}
}
class Average extends Sum{
	double n;
	//重写父类中的f()方法  使继承的父类的f()方法被隐藏
	public double f() {  
		double c;
		super.n = (int)n;  //利用super给隐藏掉的父类的 n变量赋值
		c = super.f();   //调用被隐藏的f()方法
		return c+n;
	}
	double g() {
		double c ;
		c = super.f();   //调用被隐藏的f()方法
		return c-n;
	}
}
public class Super{
	public static void main(String args[]) {
		Average a = new Average();
		a.n = 100.5678;
		double result1 = a.f();
		double result2 = a.g();
		System.out.println("result1 = "+result1);
		System.out.println("result2 = "+result2);
	}
}

运行结果:

result1 = 5150.5678
result2 = 4949.4322
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值