java - 尽管我们可以继承它们,为什么我们转向访问父类(super class)成员?

标签 java oop inheritance

如果我们有 2 类 Zoo 和 Moo,如下所示:

public class zoo {
    String superString="super";
    private String coolMethod(){
        return "Zoo method";
    }
}

public class Moo extends zoo{
    public void useMyCoolMethod(){
        zoo z=new zoo();
        System.out.println(superString);//1
        System.out.println(z.superString);//2
    }
    public  static void main(String[]args){
        new Moo().useMyCoolMethod();
    }
}

在1和2处,我们通过继承和访问打印了父类(super class)中String的值,问题是,虽然我可以通过继承做同样的事情,但Access有什么好处?知道如果两个类位于 diff 包中,则不允许使用 Access 方法

最佳答案

通过访问对象引用,您可以修改引用对象的状态,通过继承,您可以修改当前所在的对象(此引用)。因此,除了通过访问修饰符和类似的东西在类级别和包级别进行封装之外,实际上没有任何好处,您只需根据您想要的代码行为来使用它,或者在这种情况下,如何限制根据上下文修改对象的状态。

但除此之外,我不确定是否还有其他的。

关于java - 尽管我们可以继承它们,为什么我们转向访问父类(super class)成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020729/

相关文章:

java - 在 wicket 应用程序中使用什么方法注销?

c# - 跨应用程序将 DI 与共享库一起使用

c++ - 关于面向对象规划的建议

java - 验证上传的文件是否为 jpg 和 png 并保存到静态文件夹

java - 通过套接字将屏幕截图从 Java 发送到 CPP - 发布接收图像

java - Play框架中的中间件(Java)

java - 提高类的内聚和耦合

C# 混淆类层次结构中显式类型转换的必要性

oop - 使用的设计模式

Java:如何查找是否从基类重写了一个方法?