本帖最后由 李道福 于 2013-9-24 12:36 编辑
- class Test{
- public static void main(String[] args){
- WeekDay w=WeekDay.SUN;
- w.print();
- }
- }
- abstract class WeekDay{
- //私有化构造函数,无法实例化
- private WeekDay(){}
- //利用匿名内部类来创建对象
- public static final WeekDay SUN=new WeekDay(){ //这里有个问题,匿名内部类的父类的构造函数是私有的,那匿名内部类是怎么创建出来的?按理应该是编译不通过的,为什么会编译通过呢?
-
- public void print(){
- System.out.println("今天是星期天,明天是星期一");
- }
- };
- public static final WeekDay MON=new WeekDay(){
- public void print(){
- System.out.println("今天是星期一,明天星期二");
- }
- };
- public static final WeekDay TUE=new WeekDay(){
- public void print(){
- System.out.println("今天是星期二,明天星期三");
- }
- };
- public static final WeekDay WED=new WeekDay(){
- public void print(){
- System.out.println("今天是星期三,明天星期四");
- }
- };
- public static final WeekDay THI=new WeekDay(){
- public void print(){
- System.out.println("今天是星期四,明天星期五");
- }
- };
- public static final WeekDay FRI=new WeekDay(){
- public void print(){
- System.out.println("今天是星期五,明天星期六");
- }
- };
- public static final WeekDay SAT=new WeekDay(){
- public void print(){
- System.out.println("今天是星期六,明天是星期日");
- }
- };
- //定义抽象方法
- public abstract void print();
- }
- }
复制代码 |