package 原始社会class 石头{
}
class 石刀 extends 石头{
}class 石头的作用 extends 石头{
石刀 石头变石刀(){}
void 相砸(){}
void 相摔(){}
void 相磨(){}
}
class 石刀的作用 extends 石刀{
void 去砍木头(){};
void 去砍椅子(){}
}class 木头{
}
class 椅子 extends{
}
class 木头的变化 extends 木头{
}
class 椅子的变化 extends 椅子{
}不知道这样子好不好哎,我平时都这么做的。。其实这样的面试题出的太好了。。比我当时考什么抽象类和接口有什么区别纯理论的好多了。
}
class 石刀 extends 石头{
}class 石头的作用 extends 石头{
石刀 石头变石刀(){}
void 相砸(){}
void 相摔(){}
void 相磨(){}
}
class 石刀的作用 extends 石刀{
void 去砍木头(){};
void 去砍椅子(){}
}class 木头{
}
class 椅子 extends{
}
class 木头的变化 extends 木头{
}
class 椅子的变化 extends 椅子{
}不知道这样子好不好哎,我平时都这么做的。。其实这样的面试题出的太好了。。比我当时考什么抽象类和接口有什么区别纯理论的好多了。
解决方案 »
- 基于Struts2+Hibernate3+Spring2架构的项目,大家是怎样组织包结构?
- ~~~~~~~~~·JSP 配置问题。求教各位大侠~~~~~~~~··
- jboss的连接池配置,对db2能不能配置连接断开自动重连,以及连接DB2集群?
- 关于私有构造器
- xmlrpc简单实例报错
- jboss4部署开发ejb问题?初学者问题,弄了一天了,还没弄出来
- 关于struts的小问题
- 求救,为什么lomboz不好使
- 服务器端用java的serversocket,客户端用VC写的csocket,它们之间能正常接发数据吗?
- 关于structs中,超连接带多个参数的问题,在线等待!
- 怎么理解"即使当应用服务器崩溃或停止运行,Entity Bean的状态还会保存在数据库中,不会丢失"
- 小问题,大家平时都用什么写JSP?
abstract 石刀 相摔(石头){}
abstract 石刀 相磨(石头){}
}
abstract class 抽象石刀{abstract 木材 砍(椅子){}
abstract 木头 砍(木头){}
}class 木头{
}
class 椅子{
public 椅子 (木材....);
}
class 木材{
}class 石头 extends 抽象石头{
石刀 相砸(石头){...}
石刀 相摔(石头){...}
石刀 相磨(石头){...}
}class 石刀 extends 抽象石刀{ 木材 砍(椅子){...}
木头 砍(木头){...}
}
main() {
石头 石头1 = new 石头();
石头 石头2 = new 石头();
木头 木头1 = new 木头();
木材 木材1 = new 木材();
椅子 椅子1 = new 椅子();
石刀 石刀1 = 石头1.相砸(石头2);
//石刀 石刀1 = 石头1.相摔(石头2);
//石刀 石刀1 = 石头1.相磨(石头2);
木材1 = 石刀1.砍(木头1);
椅子1 = new 椅子(木材1);
//生成椅子
如果我要增加一种物体如:泥土或别的什么.然后规定所以的物体要有重量的属性.你的改动就大了.不过比totodo(是时候了,小土豆仙)要好.
可以增加一个借口,把属性放到里面,
先分析角色(包括属性和方法)
再考虑各种角色间的关系
最后抽象出接口,不知这样可行?
木材 extend 木头,
椅子 extend 木材,然后有
木材 石刀.砍(木头);就行了,不用再来个 石刀.砍(椅子)的了另外对 totodo(是时候了,小土豆仙)的设计:class 石头的作用 extends 石头{
石刀 石头变石刀(){}
void 相砸(){}
void 相摔(){}
void 相磨(){}
}
class 石刀的作用 extends 石刀{
void 去砍木头(){};
void 去砍椅子(){}
}
把石头,石刀的作用单独作为一个类不解。
};
interface 石头作用的结果;
interface 石头的作用 {
石头作用的结果 act(石头,石头);
};
class 石头互磨 implements 石头的作用 {
石头作用的结果 act(石头,石头) { return 石刀; }
};
class 石刀 implements 石头作用的结果 {
木材 砍(木头);
};
class 椅子;
class 椅子制造者 {
椅子 build(木材);
};以后的扩展性:
1。对于两块石头的其他的关系,可以通过扩展“石头的作用”接口
2。对于作用可能的结果,可以通过实现“石头作用的结果”接口来实现
3。其他的事物和石头就没有什么关系了,包括椅子什么的,可以按照需要来设计
interface 可以被砍的东西;
interface 被砍的结果;然后在“石头作用的结果”接口中增加如下的方法:
被砍的结果 砍(可以被砍的东西)
都用继承不是最佳的重用方式