如果我们有 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/