Java 如何在特定条件下扩展类?
如何使类X在特定条件下扩展类Y?就像我有一个超级类的人,有一个属性年龄,另一个类称为成人,如果年龄在12到20岁之间,成人类扩展人?如果不可能,您有其他选择吗?我已尝试使用Java 如何在特定条件下扩展类?,java,if-statement,subclass,superclass,Java,If Statement,Subclass,Superclass,如何使类X在特定条件下扩展类Y?就像我有一个超级类的人,有一个属性年龄,另一个类称为成人,如果年龄在12到20岁之间,成人类扩展人?如果不可能,您有其他选择吗?我已尝试使用HAS-A关系和运行时多态性来实现您的要求 在下面的示例中,Age是一个父类,包含所有年龄组的更通用属性 不同的年龄组分为几个班。这些类包含特定于年龄的代码或属性,并将扩展ageclass。例如Young和Elder班级 class Age { // Generalized code for Age class }
HAS-A
关系和运行时多态性来实现您的要求
在下面的示例中,Age
是一个父类,包含所有年龄组的更通用属性
不同的年龄组分为几个班。这些类包含特定于年龄的代码或属性,并将扩展age
class。例如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;
}
}
班级年龄{
//年龄组别通用代码
}
年轻的阶级会延长年龄{
//更具体的青年班守则
}
班长延长年龄{
//长者类别特定代码
}
公开课考试{
年龄;
智力价值;
公共年龄返回值(int ageValue){
如果(年龄值<20){
年龄=新青年();
}否则{
年龄=新长者();
}
//您得到的年龄对象将根据年龄值。
回归年龄;
}
}
returnVal()
方法将根据ageValue返回Young
类或Elder
类的对象。您可以使用返回布尔值的实例方法定义Person
类,true
当且仅当人员
实例至少有12岁
时。至少对我来说,这似乎更简单。类继承是一个编译时概念。另一种选择是工厂模式: