如何让X类在特定条件下扩展Y类?就像我有一个Super class Person并且有一个属性age,另一个叫做Adult的类,如果年龄介于12到20之间,那么Adult extends extends Person?如果不可能,你有其他选择吗?
答案 0 :(得分:1)
我试图用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
类的对象。
答案 1 :(得分:0)
您可以使用Person
实例方法定义.isAdult()
类,该方法返回布尔值true
当且仅当Person
实例具有age
时至少12
。至少对我来说这似乎更简单。