如何在调用方法时绕过java中的继承

Riy*_*him 1 java oop inheritance

    class Super {

        public void anotherMethod(String s) {
            retValue(s)
        }


        public String retValue(String s) {
            return "Super " + s;
        }

    }

    class Sub extends Super {

        public void anotherMethod(String s) {
            retValue(s)
        }

        public String retValue(String s) {
            return "Sub " + s;
        }

    }
Run Code Online (Sandbox Code Playgroud)

如果在主要的,

Super s = new Sub();
s.anotherMethod("Test");
Run Code Online (Sandbox Code Playgroud)

输出将是Sub Test

你有没有人可以帮我讲述如何使用main中给定序列获得输出Super Test.

让我解释为什么我想要这个,说我有一个类有方法test(),它可以被子类覆盖,在某些情况下我想要覆盖test(),在某些情况下我想要test()超级本身,有很多方法可以做到这一点,最好的建议会有所帮助.

siu*_*nin 10

你为什么要这样做?

多态的全部意义是调用正确的方法而不需要知道你得到了哪种实例......


end*_*ian 7

每当我发现自己要求(或被问到)这样的问题时,我明确地知道我在设计和/或对象定义中犯了错误.返回到您的对象层次结构并检查,仔细检查并重复检查每个继承关系是否代表"IS-A",而不是"HAS-A"或更弱的东西.