如何在特定条件下扩展课程?

时间:2014-03-05 17:43:06

标签: java if-statement subclass superclass

如何让X类在特定条件下扩展Y类?就像我有一个Super class Person并且有一个属性age,另一个叫做Adult的类,如果年龄介于12到20之间,那么Adult extends extends Person?如果不可能,你有其他选择吗?

2 个答案:

答案 0 :(得分:1)

我试图用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类的对象。

答案 1 :(得分:0)

您可以使用Person实例方法定义.isAdult()类,该方法返回布尔值true当且仅当Person实例具有age时至少12。至少对我来说这似乎更简单。