java枚举类的抽象方法
问题:下面是一个枚举类类型,里面定义了一个抽象方法 wea,为什么把这个方法修饰为private在重写方 法的时候就无法编译通过,而修饰为public就可以? 自己理解:我是这么看待的,WeekDay就好像是一个父类,里面的SUN,TUE...这些就好像是它的子类对象 如果在父类中修饰的抽象方法为private那么子类就无权访问,所以编译失败。因此应该修饰为 public的不知这样理解是否有问题。 public enum WeekDay{ SUN(1){ public void wea(){ sop("星期一天气晴"); } }, TUE(2){ public void wea(){ sop("星期二天气多云"); } }, WED(3){ public void wea(){ sop("星期三天气小雨"); } }, THI(4){ public void wea(){ sop("星期四天气大雨"); } }, FRI(5){ public void wea(){ sop("星期五天气晴"); } }; //枚举有参数的构造方法 private WeekDay(int h){ System.out.println("现在是:"+ h +"时"); } public abstract void wea(); //在枚举中定义抽象方法。 }
最满意答案
lz: 既然是抽象方法,那么继承的时候必须为非私有的,要不该抽象方法和没定义一样 你程序运行时出错的信息大意应该是无法找到或者是无法得到该方法。 可以把错误信息展出看看更多推荐
发布评论