java中super关键字的用法

super关键字

1. super.属性和super.方法
如下,有一父类Transport

package test2;

public class Transport {
    String typeOfVehicle="小汽车";//车辆类型
    float speed=150.2f;//车速
    public void run() {
		System.out.println(typeOfVehicle+"能跑"+speed+"KM/H");
	}
    
}

有一个子类Car

package test2;

public class Car extends Transport {
   //方法的重写
	public void run() {
		System.out.println(super.typeOfVehicle+"的速度是"+super.speed);
}
}

建立一个测试类

package test2;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       
       Car car=new Car();
       car.run();
	}

}

执行结果如下:

可以看到,对子类对象进行实例化后,子类的super关键字均调用了父类的属性和方法
2.super关键字与构造方法的关系
仍然以上述代码为例,作微小改动
父类如下:

package test2;

public class Transport {
    String typeOfVehicle="小汽车";//车辆类型
    float speed=150.2f;//车速
    public void run() {
		System.out.println(typeOfVehicle+"能跑"+speed+"KM/H");
	}
    public Transport() {
    	System.out.println("父类构造方法被执行");
    }
    
}

子类如下:

package test2;

public class Car extends Transport {
   //方法的重写
	public void run() {
		System.out.println(super.typeOfVehicle+"的速度是"+super.speed);
		super.run();
}
	public Car() {
		//super();//此处super()可加可不加,初始化子类对象时,父类的构造方法首先执行
		System.out.println("子类方法被执行");
	}
}

Test类如下:

package test2;

public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       
       Car car=new Car();
       
	}

}

运行结果如下:
在这里插入图片描述
从运行结果可看到,子类初始化过程中隐式的调用了父类初始化方法,即使用了super();但super可写可不写。如果不写,则默认调用父类无参的构造方法;如果写,必须在第一行。当父类有一个有参数的构造方法时,则编译器不会自动构建无参的构造方法,此时在子类中如果要调用父类的构造方法,则必须用super();且必须放在子类构造方法的第一行

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值