public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay Sun = new WeekDay(){ //这里到底定义的是WeekDay对象Sun还是netDay()方法?
//如果不用内部类,应该怎么写?张老师说定义的是weekDay类的子类,哪儿能看出来是他的子类呢???
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return Mon;
}
};
public final static WeekDay Mon = new WeekDay(){
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return Sun;
}
};
public abstract WeekDay nextDay();
真是不明白,求大侠指点迷津,内部抽象类再加个匿名,把我头都搞大了,求指点作者: 彭润生 时间: 2012-9-5 19:11
public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay Sun = new WeekDay(){ //这儿是WeekDay的一个对象sun,抽象类中有一个抽象的方法,所以要实现nextDay方法。
//如果不用内部类,那么就继承该类,也要实现nextDay方法。
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return Mon;
}
};
public final static WeekDay Mon = new WeekDay(){
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return Sun;
}
所以这里用的是匿名内部类, 来继承weekday这个抽象类,
并且在类的内部必须实现 抽象类的抽象的方法。作者: 武庆东 时间: 2012-9-5 21:09
public abstract class WeekDay {
private WeekDay(){}
public final static WeekDay Sun = new WeekDay(){ //这里到底定义的是WeekDay对象Sun
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return Mon;
}
};
public final static WeekDay Mon = new WeekDay(){
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return Sun;
}
};
public abstract WeekDay nextDay();//这里声明了抽象类中的抽象方法nextDay(),所以继承WeekDay的类必须覆写这个方法
--------------------------------------------------------------
张老师说定义的是weekDay类的子类,哪儿能看出来是他的子类呢?
public final static WeekDay Sun = new WeekDay(){ //这里相当于继承了父类,所以是WeekDay的子类
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return Mon;
}
final 修饰的类不能被子类覆盖,所以抽象类不能用final修饰!这里使用final修饰,说明它已经不是抽象类,已经通过子类向上进行类型转换生成父类的对象!作者: AngieFans85 时间: 2012-9-5 21:24