日期:2014-05-17  浏览次数:20691 次

分享个笔试题
从java的技术角度分析以下场景或用具体代码实现,在西游记中,小白龙是个人,而唐僧需要一匹马,如何让唐僧相信小白龙是一匹马而不是人!

------解决方案--------------------

总结一下人的特性和马的特性封装成一两个类
new对象后看看特性值吧?
这个 额
------解决方案--------------------
写一个马的实体类,用instanceof方法 小白龙instanceof马 这样可以得出小白龙和马这个类的关系
不知道 我考虑的是不是正确
------解决方案--------------------
我觉得应该将小白龙和马找共同点,小白龙和人找差别
------解决方案--------------------
小白龙实现马的接口 看实现、
------解决方案--------------------
探讨
小白龙实现马的接口 看实现、

------解决方案--------------------
简单写下吧
public interface BuildObject {
public void Build();
}
public class Horse implements BuildObject {
private Color color;
//马的特征属性
...
public void Build() {
System.out.println("变成马");
}
}
public class Person implements BuildObject {
private Color color;
//人的特征属性
...
public void Build() {
System.out.println("变成人");
}

}
public class XiaoBaiLong extends Person {
public void change(BuildObject obj) {
obj.Build();
}
public void Build() {
System.out.println("在西游记中,小白龙是个人");
}
}
public class TangSeng {
private XiaoBaiLong xiaobailong;
public TangSeng() {}
//唐僧需求
public void need() {
//唐僧需要小白龙变成马
BuildObject obj = new Horse();
xiaobailong.change(obj);
//唐僧需要小白龙变成人
BuildObject obj = new Person();
xiaobailong.change(obj);
//唐僧突然又想小白龙变成妖怪呢,只需新建一个继承BuildObject的类,比如Dragon,
BuildObject obj = new Dragon();
xiaobailong.change(obj);
}

....
}
------解决方案--------------------
这道题的考点,我认为就是考察程序的设计能力,是否符合设计原则,采用什么样的模式,从而达到易扩展,易维护,易复用等设计要求
------解决方案--------------------
首先封装一个马类。
让小白龙继承这个马类。
这样小白龙就有了马的特性。
二唐僧就可以把小白龙当做是一批马。
------解决方案--------------------
探讨

首先封装一个马类。
让小白龙继承这个马类。
这样小白龙就有了马的特性。
二唐僧就可以把小白龙当做是一批马。

------解决方案--------------------
需求变化一次,你所有代码都改个变
------解决方案--------------------
写一个马的实体类,用instanceof判断一下!