使用子类对象访问超类函数 [英] Accessing super class function using subclass object

查看:97
本文介绍了使用子类对象访问超类函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个子类的对象扩展其超类。子类中有一个重写方法,可以使用该对象调用。
是否可以使用子类对象调用超类的函数?

I have an object of a subclass extending its superclass. There is an overridden method in subclass which can be called using the object. Is that possible to call the superclass's function using the subclass object?

package supercall;

public class Main {

    public static void main(String[] args) {
        SomeClass obj = new SubClass();
        obj.go();   //is there anything like, obj.super.go()?
    }

}

class SomeClass {
    SomeClass() {

    }
    public void go() {
        System.out.println("Someclass go");
    }
}

class SubClass extends SomeClass {
    SubClass() {

    }
    @Override
    public void go() {
        System.out.println("Subclass go");
    }
}

考虑上面的代码。

此处打印


子类go

Subclass go

。相反,我必须打印


Superclass go

Superclass go

推荐答案

不,这是不可能的,如果你认为你需要它,重新考虑你的设计。覆盖方法的重点是替换其功能。如果一个不同的类对该类的内部工作了解得太多,那么你就完全杀了封装。

No, it's not possible, and if you think you need it, rethink your design. The whole point of overriding a method is to replace its functionality. If a different class knows that much about that class's internal workings, you're completely killing encapsulation.

这篇关于使用子类对象访问超类函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆