草庐IT

Super-Resolution

全部标签

java - 即使对象属于子类,也会调用父类(super class)方法

我正在玩一些简单的重载覆盖规则,发现了一些有趣的东西。这是我的代码。packagecom.demo;publicclassAnimal{privatevoideat(){System.out.println("animaleating");}publicstaticvoidmain(Stringargs[]){Animala=newHorse();a.eat();}}classHorseextendsAnimal{publicvoideat(){System.out.println("Horseeating");}}此程序输出以下内容。animaleating这是我所知道的:由于我们有

java - 即使对象属于子类,也会调用父类(super class)方法

我正在玩一些简单的重载覆盖规则,发现了一些有趣的东西。这是我的代码。packagecom.demo;publicclassAnimal{privatevoideat(){System.out.println("animaleating");}publicstaticvoidmain(Stringargs[]){Animala=newHorse();a.eat();}}classHorseextendsAnimal{publicvoideat(){System.out.println("Horseeating");}}此程序输出以下内容。animaleating这是我所知道的:由于我们有

java - 调用 super()

在Java中什么时候调用super()?我在派生类的一些构造函数中看到了它,但是每个父类的构造函数不是自动调用的吗?为什么需要使用super? 最佳答案 如果你提供这样的类:publicclassFoo{}或者这个:publicclassFoo(){publicFoo(){}}编译器会为此生成代码:publicclassFoo(){publicFoo(){super();}}所以,严格来说,对“super()”的调用总是存在的。在实践中,你应该只在有你想传递给父构造函数的参数的地方调用“super(...)”。调用“super()”

java - 调用 super()

在Java中什么时候调用super()?我在派生类的一些构造函数中看到了它,但是每个父类的构造函数不是自动调用的吗?为什么需要使用super? 最佳答案 如果你提供这样的类:publicclassFoo{}或者这个:publicclassFoo(){publicFoo(){}}编译器会为此生成代码:publicclassFoo(){publicFoo(){super();}}所以,严格来说,对“super()”的调用总是存在的。在实践中,你应该只在有你想传递给父构造函数的参数的地方调用“super(...)”。调用“super()”

java - 从Java中的内部类访问外部类 "super"

如何从内部类访问外部类的super?我正在重写一个方法以使其在不同的线程上运行。从内联线程,我需要调用原始方法,但当然只是调用method()会变成无限递归。具体来说,我正在扩展BufferedReader:publicWaitingBufferedReader(InputStreamReaderin,longwaitingTime){[..]@OverridepublicStringreadLine(){Threadt=newThread(){publicvoidrun(){try{setMessage(WaitingBufferedReader.super.readLine());

java - 从Java中的内部类访问外部类 "super"

如何从内部类访问外部类的super?我正在重写一个方法以使其在不同的线程上运行。从内联线程,我需要调用原始方法,但当然只是调用method()会变成无限递归。具体来说,我正在扩展BufferedReader:publicWaitingBufferedReader(InputStreamReaderin,longwaitingTime){[..]@OverridepublicStringreadLine(){Threadt=newThread(){publicvoidrun(){try{setMessage(WaitingBufferedReader.super.readLine());

java - 为什么 this() 和 super() 不能在构造函数中一起使用?

为什么this()和super()不能在构造函数中一起使用?加入这样一个东西的原因是什么? 最佳答案 this(...)将调用同一类中的另一个构造函数,而super()将调用一个super构造函数。如果构造函数中没有super(),编译器将隐式添加一个。因此,如果两者都允许,您最终可能会调用super构造函数两次。示例(不要在参数中寻找意义):classA{publicA(){this(false);}publicA(booleansomeFlag){}}classBextendsA{publicB(){super();}publi

java - 为什么 this() 和 super() 不能在构造函数中一起使用?

为什么this()和super()不能在构造函数中一起使用?加入这样一个东西的原因是什么? 最佳答案 this(...)将调用同一类中的另一个构造函数,而super()将调用一个super构造函数。如果构造函数中没有super(),编译器将隐式添加一个。因此,如果两者都允许,您最终可能会调用super构造函数两次。示例(不要在参数中寻找意义):classA{publicA(){this(false);}publicA(booleansomeFlag){}}classBextendsA{publicB(){super();}publi

java - 调用超父类(super class)方法

假设我有A、B和C三个类(class)。B扩展AC扩展B都定义了一个publicvoidfoo()方法。现在我想从C的foo()方法调用A的foo()方法(不是它的父B的方法,而是超父类(superclass)A的方法)。我试过super.super.foo();,但它的语法无效。我怎样才能做到这一点? 最佳答案 你甚至不能使用反射。类似的东西ClasssuperSuperClass=this.getClass().getSuperclass().getSuperclass();superSuperClass.getMethod("

java - 调用超父类(super class)方法

假设我有A、B和C三个类(class)。B扩展AC扩展B都定义了一个publicvoidfoo()方法。现在我想从C的foo()方法调用A的foo()方法(不是它的父B的方法,而是超父类(superclass)A的方法)。我试过super.super.foo();,但它的语法无效。我怎样才能做到这一点? 最佳答案 你甚至不能使用反射。类似的东西ClasssuperSuperClass=this.getClass().getSuperclass().getSuperclass();superSuperClass.getMethod("