草庐IT

Super-Resolution

全部标签

java - 为什么父类(super class)的实例变量没有被子类覆盖?

请参阅下面的代码,其中方法print被覆盖,但变量a未被覆盖。为什么允许在子类中声明重复变量?classB{inta=10;publicvoidprint(){System.out.println("insideBsuperclass");}}classCextendsB{inta=20;publicvoidprint(){System.out.println("insideCsubclass");}}publicclassA{publicstaticvoidmain(String[]args){Bb=newC();b.print();//prints:insideCsubclassS

java - 为什么父类(super class)的实例变量没有被子类覆盖?

请参阅下面的代码,其中方法print被覆盖,但变量a未被覆盖。为什么允许在子类中声明重复变量?classB{inta=10;publicvoidprint(){System.out.println("insideBsuperclass");}}classCextendsB{inta=20;publicvoidprint(){System.out.println("insideCsubclass");}}publicclassA{publicstaticvoidmain(String[]args){Bb=newC();b.print();//prints:insideCsubclassS

java - 在 super 构造函数运行之前初始化字段?

在Java中,有没有办法在super构造函数运行之前初始化一个字段?即使是我能想到的最丑陋的hack也会被编译器拒绝:classBase{Base(StringsomeParameter){System.out.println(this);}}classDerivedextendsBase{privatefinalinta;Derived(StringsomeParameter){super(hack(someParameter,a=getValueFromDataBase()));}privatestaticStringhack(StringreturnValue,intignore

java - 在 super 构造函数运行之前初始化字段?

在Java中,有没有办法在super构造函数运行之前初始化一个字段?即使是我能想到的最丑陋的hack也会被编译器拒绝:classBase{Base(StringsomeParameter){System.out.println(this);}}classDerivedextendsBase{privatefinalinta;Derived(StringsomeParameter){super(hack(someParameter,a=getValueFromDataBase()));}privatestaticStringhack(StringreturnValue,intignore

java - super 关键字的含义

关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestionsuper关键字在Java中的含义和用法是什么? 最佳答案 super是Java中的关键字。它指的是直系parent的属性(property)。super()//refersparent'sconstructorsuper.getMusic();//referstotheparent'smethod-ReadMoreonsuper

java - super 关键字的含义

关闭。这个问题需要更多focused.它目前不接受答案。想要改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭8年前。Improvethisquestionsuper关键字在Java中的含义和用法是什么? 最佳答案 super是Java中的关键字。它指的是直系parent的属性(property)。super()//refersparent'sconstructorsuper.getMusic();//referstotheparent'smethod-ReadMoreonsuper

java - 如何通过使用父类(super class)来减少代码?

我想重构一些目前由一个父类(superclass)和两个子类组成的代码。这些是我的类(class):publicclassAnimal{inta;intb;intc;}publicclassDogextendsAnimal{intd;inte;}publicclassCatextendsAnimal{intf;intg;}这是我当前的代码:ArrayListlistAnimal=newArrayList();if(condition){Dogdog=newDog();dog.setA(..);dog.setB(..);dog.setC(..);dog.setD(..);dog.setE

java - 如何通过使用父类(super class)来减少代码?

我想重构一些目前由一个父类(superclass)和两个子类组成的代码。这些是我的类(class):publicclassAnimal{inta;intb;intc;}publicclassDogextendsAnimal{intd;inte;}publicclassCatextendsAnimal{intf;intg;}这是我当前的代码:ArrayListlistAnimal=newArrayList();if(condition){Dogdog=newDog();dog.setA(..);dog.setB(..);dog.setC(..);dog.setD(..);dog.setE

java - 为什么我不能在我的 super() 调用周围使用 try block ?

因此,在Java中,构造函数的第一行必须是对super的调用……无论是隐式调用super(),还是显式调用另一个构造函数。我想知道的是,为什么我不能在它周围放一个tryblock?我的具体情况是我有一个模拟类进行测试。没有默认构造函数,但我想要一个使测试更易于阅读。我还想将构造函数抛出的异常包装到RuntimeException中。所以,我实际上想要做的是:publicclassMyClassMockextendsMyClass{publicMyClassMock(){try{super(0);}catch(Exceptione){thrownewRuntimeException(e)

java - 为什么我不能在我的 super() 调用周围使用 try block ?

因此,在Java中,构造函数的第一行必须是对super的调用……无论是隐式调用super(),还是显式调用另一个构造函数。我想知道的是,为什么我不能在它周围放一个tryblock?我的具体情况是我有一个模拟类进行测试。没有默认构造函数,但我想要一个使测试更易于阅读。我还想将构造函数抛出的异常包装到RuntimeException中。所以,我实际上想要做的是:publicclassMyClassMockextendsMyClass{publicMyClassMock(){try{super(0);}catch(Exceptione){thrownewRuntimeException(e)