面向对象(多态)
面向对象---多态
一、多态:同一个对象具有多种形态
二、作用:核心在于方法的重写、覆写,使多种数据类型进行统一,让程序具有超强的扩展性。
三、模拟人物进行网络游戏:
类图:
创建游戏父类:
/**
* @fileName : Game.java
* @description : TODO
* @author : yangzhihong
* @date : 2021年12月15日-上午11:39:08
*/
public class Game {
public void start() {
System.out.println("开机上号!");
}
public void play() {
System.out.println("热血沸腾,沉迷其中无法自拔!");
}
public void end() {
System.out.println("收工,回家吃饭!\n");
}
}
DNF游戏类:
public class DNF extends Game {
public void play() {
System.out.println("刷刷刷,刷图使我快乐!");
}
}
LOL游戏类:
public class LOL extends Game {
public void play() {
System.out.println("沉迷在联盟的世界无法自拔");
}
public void gailun() {
System.out.println("来一波盖伦大宝剑!");
}
}
CS游戏类:
public class CS extends Game {
public void play() {
System.out.println("没有八倍镜,照样干翻对面!");
}
}
人物类:
public class Player {
public void happy(Game game) {
game.start();
game.play();
game.end();
}
}
场景类,执行游戏入口:
public static void main(String[] args) {
Game game1 = new DNF(); //向上转型
Game game2 = new LOL();
Game game3 = new CS();
LOL g = (LOL)game2; //向下转型
g.gailun();
Player p = new Player();
p.happy(game1);
p.happy(game2);
p.happy(game3);
}
}
小小总结:
1.向上转型:把子类的对象转化为父类的变量
缺点:会屏蔽掉子类中特有的方法
2.向下转型:把父类的变量转化回子类的变量
缺点:转化有风险,java要求必须写强制转化,格式(向上转化后的数据类型)变量
3.两个没有关系的类对象是不能够转型的,一定会产生ClassCastException
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律