作者SamLucien (黑)
看板java
标题[问题] is-a 关系在Java程式的时候的用意?
时间Wed Jul 31 17:47:27 2013
我用Java SE技术手册 良葛格 这本想提问题
(第六章 6-7页)
一个游戏 脚色(Role)类别
剑士(SwordsMan)、魔法师(Magician) 则是继承了 Role类别的所有基本脚色该有的东西
也就是 SwordsMan is-a Role , Magician is-a Role
通常在Java 看到的实作剑士(SwordsMan)、魔法师(Magician)
通常都会这样写:(1)
SwordsMan role1 = new SwordsMan();
Magician role2 = new Magician();
但是,通常也会看到这样写:(2)
Role role1 = new SwordsMan();
Role role2 = new Magician();
我想请问的是这两种写法有什麽差别?
因为现在遇到看不懂的地方也包含
就我的认知是应该这样写
ArrayList<Map<String,Object>> list
= new ArrayList<Map<String,Object>>();
但是看到这 就不知道为什麽 可以这样写 用意何在?
List<Map<String,Object>> list
= new ArrayList<Map<String,Object>>();
就是想问说(1)与(2) 这样的写法 有什麽差别呢???
(2) 的写法有什麽用意???
谢谢大家~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 113.196.180.48
※ 编辑: SamLucien 来自: 113.196.180.48 (07/31 18:02)
※ 编辑: SamLucien 来自: 113.196.180.48 (07/31 18:02)
1F:→ chunhsiang:主要就是多型 可以化简背後复杂的东西 07/31 18:11
2F:→ jtorngl:(2) 可以new LinkedList<xxx>()或任何 is a List的class 07/31 20:52
3F:→ jtorngl:Role的问题,可以看head first design pattern第一章 07/31 20:53
4F:→ jtorngl:如果java的polymorphism你看不懂的话 07/31 20:54
5F:→ jtorngl:head first java说明多型时是用动物(园)当例子,也容易懂 07/31 20:56
6F:→ n52095467:宣告为Role的话以後转职比较方便 08/01 00:34
7F:推 kaocoming:楼上真是一语道破 简单易懂的解释 08/01 09:01
8F:→ adrianshum:其实楼楼上反而是说错了。转职代表是某人由Swordman 转 08/01 09:18
9F:→ adrianshum:成 Magician, 这种写法并不会让这事变得容易 08/01 09:19
10F:推 abcf:初心者可以转职成任何职业 剑士没办法转职成驯兽师 他没说错 08/01 11:39
11F:→ andymai:初心者到职业的阶段~算是"转职"吗?因为每个人可以做每种职 08/01 12:51
12F:→ andymai:业~但是职业间无法互相转换~"转职"应该是指後者吧... 08/01 12:53