Java学习ing——继承

我又来了~
今天又来复习之前学的东西~
我们上一次让貂蝉和鲁班对打,但是我们的现实中怎么可能只让两个人对打呢?要打架那就是大家的事情啊!所以我们今天让这个战局添加一点新的东西emmm…于是我让我们可爱的Captain和Ironman相爱相杀之后再让赢的那个人去打灭霸!原谅我现在的逻辑被狗吃了(⌒▽⌒)
想加进来另外一个人,如果用上一次的方法的话就有点太麻烦了,要在每个角色的类里面重复写对另外两个角色的攻击,还要在主方法里面写好多遍攻击的施加,其实就是把打的对象改了一下,但是要把整个方法都再写一遍,总的来说就是机械地重复一模一样的东西,而且画面极其的冗长。所以我们决定用新学的东西来改变一下我们的僵局~

继承

还记得老师说的,你只能说你长得像你爸爸,不能说你爸爸长得像你吗?你有没有思考过这里面的逻辑呢?这其实就是一个继承的问题,是你从你爸爸那里继承了相貌的特点,而不是你爸爸从你这里继承了…嗯对,就是这样!
Java中的继承其实意思差不多,就是子类会从父类继承父类的属性特征;同时也像一个崽不能有几个爸爸但是一个爸爸可以有很多个崽一样,一个子类只能从一个父类继承,但是多个子类可以从同一个父类继承。
所以我们就来实践吧!

语法实现

public class 子类名 extends 父类名{}

实践演练~

因为我们的Captain,Ironman和灭霸都是人嘛,首先我们来创建一个叫people的父类,通俗易懂。

public class people {
	public String name;
    public int hp;
	public int ad;
	
public void attack(people p) {
		p.hp-=ad;
		System.out.println(name+"攻击了"+p.name+ad+"HP,还剩"+p.hp);
		}
}

然后就是我们队长的类了~

public class AmericanCaptain extends people{
	public void attack(people p) {
		p.hp-=ad;
		System.out.println(name+"攻击了"+p.name+ad+"HP,还剩"+p.hp);
		}
	
}

然后是钢铁侠的

public class Ironman extends people{
	public void attack(people p) {	
		p.hp-=ad;
		System.out.println(name+"攻击了"+p.name+ad+"HP,还剩下"+p.hp);
		}
}

还有灭霸的

public class Mieba extends people{
	public void attack(people p) {
		p.hp-=ad*2;//让灭霸牛逼一点,打别人都是两倍两倍的打,营造苦情戏的效果
		System.out.println(name+"攻击了"+p.name+ad*2+"HP");
		}
}

最后让他们打!

public class Manage {
	public static void main(String[] args) {
		AmericanCaptian ac = new AmericanCaptian();
		ac.name = "美国队长";
		ac.ad = 300;
		ac.hp = 5500;
		Ironman im = new Ironman();
		im.name = "钢铁侠";
		im.ad = 450;
		im.hp = 4000;
		Mieba mb = new Mieba();
		mb.name = "灭霸";
	    mb.ad = 400;
		mb.hp = 4500;
		//设定一个赢家,使赢家作为和灭霸打的那个,简化后面与灭霸的对打
		people winner ;

		while (im.hp > 0 && ac.hp > 0) {//两个人都还没死的时候就循环攻击
			ac.attack(im);
			if (im.hp > 0)
				im.attack(ac);
		}
		if (im.hp < 0) 
			winner = ac;
		else winner =im;
			System.out.println(winner.name + "击败了" + im.name);//这一场就打完了
			while (winner.hp > 0 && mb.hp > 0) {
				winner.attack(mb);
				if (mb.hp > 0)
					mb.attack(winner);
			}
			if (winner.hp > 0)
				System.out.println(winner.name + "win!");
			else {
				System.out.println(winner.name + "失败了");
			}
		}	
	}

毫无疑问我对灭霸还是太好了,最终迎来了英雄双双失败的结局……我只是想让他们在一起(._.)
Java学习ing——继承_第1张图片
现实总是如此残酷,哎…
今天又是美好的一天!我滚去预习四级了

Java学习ing——继承_第2张图片

你可能感兴趣的:(Java学习ing——继承)