类是对对象的抽象,继承是对某一批类的抽象,从而实现对现实世界更好的建模,继承能提高代码的复用性,java使用extends实现继承,extends的意思是拓展,子类是父类的拓展。
java的继承方法的重写override
在子类中可以根据需要对从基类继承来的方法进行重写,重写方法必须重写方法具有相同方法名称、参数列表和返回类型,重写方法不能使用比被重写方法更严格的访问权限。
重写继承的方法
package com.ws.basic;
class GameObject{
int life;
public GameObject(int life) {
super();
this.life = life;
}
public int life_reduce(int ai_reduce)
{
life = life - ai_reduce;
return life;
}
public int life_add(int ai_add)
{
life = life + ai_add;
return life;
}
}
class Creature extends GameObject {
String mc;
int attack;
public Creature(String mc, int attack,int life) {
super(life);
this.mc = mc;
this.attack = attack;
}
public void move() {
System.out.println(mc+"在移动!");
}
public void normal_attack() {
System.out.println(mc+"在普通攻击!");
}
}
class Hero extends Creature{
String name;
String skill;
public Hero(String name,String skill,String mc, int attack,int life) {
super(mc,attack,life);
this.name = name;
this.skill = skill;
}
// 重写普通攻击方法
public void normal_attack(){
System.out.println(mc + name + "用火球攻击!");
}
public void skill_attack(){
System.out.println(mc + name + "用"+skill+"攻击!");
}
public void eat_food(int food){
life_add(food);
System.out.println(mc + name + "吃了"+food + "血,当前血量"+life);
}
}
public class testjc {
public static void main(String[] args) {
Hero heroDfs = new Hero("甘道夫","暴风雪","大法师",14,450);
heroDfs.normal_attack();
}
}
输出:
大法师甘道夫用火球攻击!
按照代码中的方法,我们就重写了方法。