所以我的讲师说了一些类似的话:
Declaring variables as protected exposes them to all subclasses, can cause a maintenance problems, best to declare variables as private (even in inheritance relationships) and write getter and setter methods to provide access to variables.
但他没有解释维护问题是什么。如果子类可以访问变量会有什么问题。
我是 java 的新手,所以简单的解释会更有帮助
最佳答案
假设您编写了一个带有protected
实例变量的类:
public class A {
protected int c;
}
现在,其他人可以扩展您的类并直接使用 c
变量:
public class B extends A {
public void someMethod () {
System.out.println(c + 5);
}
}
现在 B
依赖于类 A
的 c
成员。如果明天你决定删除那个变量,或者重命名它,或者改变它的类型,B
将无法通过编译。
当您将 c
设为私有(private)并提供 getter 和 setter 来访问它时,您可以自由更改 c
而不会破坏扩展您的类的类。
关于java - java中 protected 变量有哪些维护问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42271291/