张孝祥老师的基础加强我也看了部分,你说的这些我都懂,但是还有疑问,
我们知道如果枚举类中有抽象方法,那么创建对象的时候必须重写父类的抽象方法,
在对象后面可以用()给对象传参,新建子类对象的时候是会调用到父类的构造方法,
但是我们new的构造方法不是子类的么,那么我们没写子类构造方法那就是默认无参构造器咯,
那怎么可以而且必须按照父类的构造方法的参数格式传入参数,并且此参数还可以作为子类对象的参数?
并且父类的构造方法是private私有的啊,即使可以运行也与子类没有关系啊!
我发个没根据父类构造函数的格式传参的错误代码求高手解惑- package com.itheima.prepare;
- public enum EnumBestTest {
- // 虽然是用子类创建的对象,但是在new子类对象的时候还是会调用父类的造方法???????
- SUN {
- @Override
- public EnumBestTest nextDay() {
- // TODO Auto-generated method stub
- return MON;
- }
- },
- MON {
- @Override
- public EnumBestTest nextDay() {
- // TODO Auto-generated method stub
- return TUE;
- }
- },
- TUE {
- @Override
- public EnumBestTest nextDay() {
- // TODO Auto-generated method stub
- return WED;
- }
- },
- WED {
- @Override
- public EnumBestTest nextDay() {
- // TODO Auto-generated method stub
- return THI;
- }
- },
- THI {
- @Override
- public EnumBestTest nextDay() {
- // TODO Auto-generated method stub
- return FRI;
- }
- },
- FRI {
- @Override
- public EnumBestTest nextDay() {
- // TODO Auto-generated method stub
- return SAT;
- }
- },
- SAT {
- @Override
- public EnumBestTest nextDay() {
- // TODO Auto-generated method stub
- return SUN;
- }
- };
- public abstract EnumBestTest nextDay();
- private int time;
-
- private EnumBestTest(int time) {
- this.time = time;
- }
- }
复制代码 |