2014-03-05 19 views
2

如何让X类在特定条件下延伸Y类?就像我有一个超级班人员,并且有一个属性年龄,另一个班级叫做Adult,如果年龄在12到20之间,Adult班级延长Person?如果不可能,你有其他选择吗?如何在特定条件下扩展课程?

+1

类继承是编译时的概念。 –

+0

另一种方法是工厂模式:http://java.dzone.com/articles/design-patterns-abstract-factory –

回答

0

我试图实现你所要求的与HAS-A关系和运行时多态性。

在下面的例子中,Age是一个父类,它包含所有年龄组的更一般属性。

不同年龄组分为几类。这些类别包含年龄特定的代码或属性,并且将延伸Age课程。例如YoungElder类。

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。至少这对我来说似乎更简单。