相关疑难解决方法(0)

为什么是super.super.method(); Java不允许?

我读了这个问题并认为如果有人可以写的话很容易解决(不是没有它可以解决):

@Override
public String toString() {
    return super.super.toString();
}
Run Code Online (Sandbox Code Playgroud)

我不确定它在许多情况下是否有用,但我想知道为什么它不是,如果这样的东西存在于其他语言中.

你们有什么感想?

编辑: 澄清:是的,我知道,这在Java中是不可能的,我不会真的错过它.这不是我期望的工作,并且惊讶于编译错误.我刚才有了这个想法并想讨论它.

java superclass

347
推荐指数
7
解决办法
16万
查看次数

当我尝试覆盖静态方法时,为什么编译器没有抱怨?

我知道我们不能在Java中覆盖静态方法,但有人可以解释下面的代码吗?

class A {
    public static void a() { 
        System.out.println("A.a()");
    }
}   

class B extends A {
    public static void a() {
        System.out.println("B.a()");
    }
}
Run Code Online (Sandbox Code Playgroud)

我怎么能a()在课堂上覆盖方法B

java static-methods overriding

34
推荐指数
3
解决办法
3万
查看次数

Java:在跳过中间继承的超类时调用基超类方法

假设我有三个类:

class A
{
    public void method()
    { /* Code specific to A */ }
}

class B extends A
{
    @Override
    public void method()
    { 
       /*Code specific to B*/
       super.method(); 
    }
}

class C extends B
{
    @Override
    public void method()
    { /* I want to use the code specific to A without using B */ }
}
Run Code Online (Sandbox Code Playgroud)

在这种情况下,目标是使用 A 中的代码而不使用 B 中的代码。我认为有一种方法可以通过调用 super 方法来实现,但这也引入了 B 中的代码。

有没有办法做到这一点?

java methods inheritance

5
推荐指数
1
解决办法
1467
查看次数

调用hashCode的Object实现

我有这样的层次结构:

public class A {
    public abstract int hashCode();
}
public class B extends A {
    public int hashCode(){
        //I want this to return the object implementation of hash code
        return 0;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望b.hashCode()返回hashCode()的Object实现.不幸的是B必须扩展A,而A不能改变.

java hashcode

3
推荐指数
1
解决办法
73
查看次数

super.super.func()? - Java多态性

假设我在Java中有3个类,那么super one有一个名为func()的函数,我现在创建一个子类来覆盖它,并且我的子类的子类,现在在我的子子类上工作我将如何调用子类的'func()'和超类?

我尝试了'this'"指针",但是Java'在运行时'修复'它并调用subsub func().

编辑:谢谢大家; 'Skeen回到了绘图板'.

java polymorphism

2
推荐指数
1
解决办法
1360
查看次数