野心家

导航

简单的继承使用案例2

(二)、写一个枪类(Gun),类中有属性:品种(进口枪还是国产枪)type,重量weight。还有一个开枪的方法(shoot),输出“开枪了”。两个子类是:
手枪类(HandGun):类中有属性品种,重量。还有一个开枪的方法,输出“XX品种的手枪,重XX公斤,一颗子弹打出去了”。
机枪类(machineGun):类中有属性品种,重量。还有一个开枪的方法,输出“XX品种的机枪,重XX公斤,一连串的子弹打出去了”。
测试类中定义一个枪的变量,用此变量记录一个手枪的对象,调用这把枪的开枪方法,注意观察输出的结果,是调用的枪的开枪方法,还是调用的手枪的开枪方法。再生成一把机枪的对象放入到这个枪的变量中去,又调用这把枪的开枪方法,观察结果。
(注意:把儿子当老子看后,调用的方法还是儿子的)

package com.lanxi.demo2;

public class Gun {
	String type;
	int weight;
	public Gun(String type,int weight){
		this.type=type;
		this.weight=weight;
	}
	public void shoot(){
		System.out.println("开枪了");
	}

}

  

package com.lanxi.demo2;

public class HandGun extends Gun{
	public HandGun(){
		super("进口",10);
	}

	@Override
	public void shoot() {
		System.out.println(type+"品种的手枪,重"+weight+"公斤,一颗子弹打出去了");
	}
	

}

  

package com.lanxi.demo2;

public class machineGun extends Gun{
	public machineGun(){
		super("国产",11);
	}

	@Override
	public void shoot() {
		System.out.println(type+"品种的机枪,重"+weight+"公斤,一连串的子弹打出去了");
	}
	

}

  

package com.lanxi.demo2;

public class Test {
	public static void main(String[] args) {
		Gun gun=new Gun("国产",10);
		gun.shoot();
		Gun gun1=new HandGun();
		gun1.shoot();
		Gun gun2=new machineGun();
		gun2.shoot();
		
	}

}

  

posted on 2017-12-26 17:30  野心家  阅读(351)  评论(0)    收藏  举报