一. 知识点:
继承:
- 需要使用继承的原因:一是提高代码的重用性;节约开发程序的时间,二是提高程序的扩张性。完善或新增内容。
- Java继承的语法格式:
- java继承的关键字:extends;
- 格式是:Public class 类名(子类、派生类、超类) extends类名(父类、基类){ }
- 需要使用继承的情况:包含关系:学生包含大学生、初中生…
- 子类继承了父类全部的内容,子类继承到了父类所有的属性和方法。
- 注意点:访问修饰符的使用范围
访问修饰符 | 同类中 | 同包中 | 不同包中 | 不同包但是有继承关系的子类中 |
Private | 可以 | 不可以 | 不可以 | 不可以 |
默认的 | 可以 | 可以 | 不可以 | 不可以 |
Protected | 可以 | 可以 | 不可以 | 可以 |
Public | 可以 | 可以 | 可以 | 可以 |
- 在子类中同样可以定义父类中没有的属性和方法。
方法重写
- 当父类中存在某一个方法,但是子类也有这个方法,但是方法的具体事项不同时使用方法重写。
- 例如:父类有一个看书学习的方法,子类也有一个看书学习的方法,但是两者不一致。这时就要用到方法重写。
重写的条件:
- 必须存在继承关系。
- 子类再重写父类方法时,子类方法的访问修饰符要比父类方法的访问修饰符范围大。
- 子类在重写父类方法时,子类的返回值类型,方法名,参数都要和父类方法的完全一致。
- 子类在重写父类方法时,子类方法中的代码必须要和父类的代码不同。
- Private访问修饰符的方法不能重写;final修饰的方法不能重写。
调用重写的方法:
- new关键字后的类名是谁,那么就优先调用谁的方法。
- 如果类名是子类的,那么会优先调用子类的方法,如果子类没有这个方法,才会调用父类的方法。
自动转型:
- java中所说的自动转型,在平常我们用的很多,但也常常容易被忽略;自动转型也就是在两个存在继承关系的类,
- 自动转型的格式:
- 父类名 对象名 = new 子类构造方法(参数值,...);
-
- 格式二:
- public void method(父类名 参数名){ }
子类名 对象名a = new 子类构造方法(参数值,...); 父类名 对象名b = new 子类构造方法(参数值,...);
method(对象名a); method(对象名b);
- 老实说对于自动转型还并不是太懂,这需要之后在使用中继续理解。
二.任务:
二.回合制对战游戏:回合制对战游戏:奥特曼A和小怪兽A进行PK,直到一方的血量为0时结束战斗,输出谁胜利了!
如果奥特曼A胜利,则奥特曼A和奥特曼B进行Pk,直到一方的血量为0时结束战斗,输出谁胜利了!
如果小怪兽A胜利,则小怪兽A和小怪兽B进行Pk,直到一方的血量为0时结束战斗,输出谁胜利了
思路:
- 奥特曼打一次小怪兽,小怪兽的血量减1; 小怪兽打一次奥特曼,奥特曼的血量同样减1;
- 在主函数中利用for 和if循环实现攻击;
- 先是for循环和if判断实现奥特曼A和小怪兽A进行PK,奇数时,小怪兽打奥特曼,偶数时,奥特曼打小怪兽。再用if语句来判断实现当奥特曼A胜利时,奥特曼A和奥特曼B进行PK,或者小怪兽A胜利时,小怪兽A和小怪兽B进行PK。( 当小怪兽A的血量为零时,则奥特曼A和奥特曼B进行PK,否则小怪兽A和小怪兽B进行PK。)
- 奥特曼的类:hero和小怪兽的类:Monster,这两个类下继续建立hero2和monster2 这俩个子类。
代码:
Monster(父类)函数:
public class Monster { public int bloodValue; public String name; public void fight(hero her){ her.bloodValue--; System.out.println(name+"正在和"+her.name+"战斗, "+her.name+"的剩余的血量是"+ her.bloodValue); if(her.bloodValue<=0){ System.out.println(name+"赢了"); } }}
Monster2(子类)函数:
public class monster2 extends Monster { public void fight2(Monster mon2) { mon2.bloodValue--; System.out.println(name + "正在和" + mon2.name + "战斗," + mon2.name + "的剩余的血量是" + mon2.bloodValue); if (mon2.bloodValue <= 0) { System.out.println(name + "赢了"); } } }
注意点!:
1. 注意分开写循环,避免逻辑错误;
2. 用Break跳出循环,避免出现死循环;
3. 学会用while循环,进行判断,简化程序。
4.因为小怪兽和奥特曼的特征和行为是一样的所以可以创建一个父类。注意类的创建,有益于简化程序。类是根据生活中对象的特征以及行为(功能),按照程序中类的固定格式进行的抽象定义。当对象的特征以及行为(功能)相同时,他们就可以属于一个类。