super关键字的使用

   首先创建一个父类,如下:

public class Fu {
	public int a = 10;
	public int f;
	
	public void fu() {
		System.out.println("Fu.fu()");
	}
	
	public void method() {
		System.out.println("Fu.method()");
	}
}

再创建一个子类并继承父类,如下:

public class Zi extends Fu{
	public int a = 20;
	public int z;
	
	public Zi() {
		super();
	}
	
	public void show() {
		
//		//访问子类里面的成员变量(不同名)
//		System.out.println(z);
//		System.out.println(this.z);
//		
//		//访问父类里面的成员变量(不同名)
//		System.out.println(f);
//		System.out.println(this.f);
//		System.out.println(super.f);
		
		//访问子类和父类中同名的成员变量
		System.out.println(a);//访问子类
		System.out.println(this.a);//访问子类
		System.out.println(super.a);//访问父类
	}
	
	public void zi() {
		System.out.println("Zi.zi()");
	}
	
	public void method() {
		System.out.println("Zi.method()");
	}
	
	public void test() {
		//访问子类的方法
		zi();
		this.zi();
		
		//访问父类的 方法
		fu();
		this.fu();
		super.fu();
		System.out.println("----------");
		//调用父类里面的method方法
		method();//调用子类method方法
		this.method();//调用子类method方法
		super.method();//调用父类的method方法
	}
}

         super关键字的三种用法:
               super.父类成员变量
               super.父类成员方法
               super();调用父类构造方法

        继承关系下,构造方法的访问特点:
         a.在子类构造方法里面,如果没有显示的写,
                 则默认第一行写了一个super();
         b.如果显示的写了一个super()[不论是否有参数],
                 则不再默认赠送super();
         c.如果要显示的写,则super()[不论是否有参数]
                  必须是第一个语句;
         d.  super();这种写法必须写在子类的构造方法里面
              super();调用父类的无参数的构造方法


         创建子类对象的时候(调用子类构造方法),无论如何都会调用到父类的构造方法。
               一个类如果没有显示的继承一个父类,则默认继承自Object顶级父类。


      方法的覆盖重写:
               a.在继承关系下
               b.方法名相同、参数项相同
               c.修饰符相同,参数项相同

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值