-1

可能重复:
子类是否继承了私有字段?

毫无疑问,子类不能直接访问私有字段。但是如果私有字段存在呢?实际上,我可以通过其公共或受保护的方法访问私有字段。

私有方法。

有没有人可以告诉我这是怎么回事?

4

4 回答 4

1

您应该始终创建一个类的字段private。并提供public访问器方法,以访问这些字段..

通过这样做,您将达到encapsulation任何OO language..

此外,不允许直接访问的另一个好处是,您可以根据需要和安全性修改字段,然后再让外部类访问它。

其实一般建议access the private fields通过getter methods即使在同一个班也..'

这也有助于轻松修改您的课程。

假设将来,您想更改访问字段的方式(也就是说,您想在返回之前对字段进行一些处理)..现在,如果您甚至在自己的类中直接访问字段..您将不得不在每个地方进行更改..但是如果您曾经getter访问这些字段,则只需要使用modify您的getter方法..

public class A {  
    private int data;

    public int getData() {
        // Here apart from just return the `data`, you can perform some 
        // modification also according to your need..
    }
}
于 2012-10-09T13:38:02.387 回答
0

这是一种正常的行为。超类为您提供了一个抽象,您应该处理。你不应该被实现细节所困扰。如果明天实现发生变化,您无需更改子类 - 超类将其隐藏。

于 2012-10-09T13:33:07.970 回答
0

你看到的是封装。您正在通过方法控制对类成员的访问,而不是让它们被直接访问。

于 2012-10-09T13:34:49.983 回答
0

在这种情况下,您可能需要阅读术语publicprotectedprivate的含义。

如果这些字段是私有的,则子类不能从其父类访问字段和方法,如果您希望子类能够访问这些字段和方法,那么您需要使用的可见性修饰符(在父类上)是受保护的。

protected的使用特别是子类,并且只有子类可以访问父类上的字段和方法。

于 2012-10-09T13:35:34.623 回答