如何让X类在特定条件下延伸Y类?就像我有一个超级班人员,并且有一个属性年龄,另一个班级叫做Adult,如果年龄在12到20之间,Adult班级延长Person?如果不可能,你有其他选择吗?如何在特定条件下扩展课程?
2
A
回答
0
我试图实现你所要求的与HAS-A
关系和运行时多态性。
在下面的例子中,Age
是一个父类,它包含所有年龄组的更一般属性。
不同年龄组分为几类。这些类别包含年龄特定的代码或属性,并且将延伸Age
课程。例如Young
和Elder
类。
class Age {
// Generalized code for Age class
}
class Young extends Age {
// more specific code of Young class
}
class Elder extends Age {
// Elder class specific code
}
public class test {
Age age ;
int ageValue ;
public Age returnVal(int ageValue){
if (ageValue < 20) {
age = new Young();
} else {
age = new Elder();
}
// age object you get will be according to ageValue.
return age;
}
}
returnVal()
方法将返回要么Young
类或Elder
根据ageValue
类的对象。
0
您可以定义与返回一个布尔值,true
一个.isAdult()
实例方法Person
类,当且仅当Person
实例有age
至少12
。至少这对我来说似乎更简单。
相关问题
- 1. 如何扩展课程?
- 2. 如何扩展课堂?
- 3. 课程课程特定日期特定课时无课程
- 4. 如何根据特定元素有条件地切换课程?
- 5. 如何在Backbone/Marionette中“深度扩展”或“模块化扩展”课程?
- 6. 在特定条件下停止程序
- 7. 如何使用unicastremoteobject如果我的课程已经扩展了另一课程......?
- 8. opta规划师课程课程指定课程特定房间
- 9. 扩展特定的上下文菜单
- 10. 如何判断您的课程扩展程度?
- 11. 如何删除特定课程的前一课程?
- 12. VueJS课程条件
- 13. 可扩展的课程和图书馆
- 14. 我必须扩展哪个课程?
- 15. Joomla扩展到列表课程
- 16. 如何在特定域名中运行Chrome扩展程序
- 17. 如何使用特定的扩展
- 18. 如何读取Windows特定扩展
- 19. R:如何按组扩展条件
- 20. Gitignore - 如何在特定目录中排除特定扩展名的文件?
- 21. 为特定应用程序扩展flatpages
- 22. 如何在Windows上下文菜单中为具有特定扩展名的文件添加条目?
- 23. 如何到达扩展课程的功能?
- 24. 如何tar特定的文件扩展名文件?
- 25. 在特定条件下触发事件
- 26. 无法在特定条件下动态更改Chrome扩展程序图标符合
- 27. 排除特定的文件扩展名
- 28. 特定文件扩展名动错误
- 29. Phing echo文件名特定扩展名
- 30. 如果名称符合条件,删除特定扩展名的文件
类继承是编译时的概念。 –
另一种方法是工厂模式:http://java.dzone.com/articles/design-patterns-abstract-factory –