面向对象(多态)

面向对象---多态

  一、多态:同一个对象具有多种形态

  二、作用:核心在于方法的重写、覆写,使多种数据类型进行统一,让程序具有超强的扩展性。

  三、模拟人物进行网络游戏:

类图:

img

点击并拖拽以移动

创建游戏父类

/**
* @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

posted @   _杨先生  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示