在从子类访问超类的方法和属性的领域中,根据principle of least privilege,我看到了三个解决方案,按照优先级的降序排列。
super
关键字的超类'逻辑方法,以避免子类'逻辑方法中的冗余protected
关键字而不是private
,仅适用于需要从子类/包访问的 我的问题:我无法想到一个人不得不求助于3.因为public
(甚至protected
}吸气剂总是更多理想的(在我看来)总是一个用于在子类级别检索超类属性的选项。什么时候将超类的属性设置为protected
对于这种情况是否必要?如果有的话?
答案 0 :(得分:0)
客观地说,标记字段given types;
required: java.util.List<T>,T
found: java.util.List<com.company.Main.B>,com.company.Main.B
reason: inferred type does not conform to equality constraint(s)
inferred: com.company.Main.A
equality constraints(s): com.company.Main.A,com.company.Main.B
可能永远不会必要,而不是在适当的情况下使其成为protected
并提供访问者(private
或其他)。
根据他们对所涉及权衡的看法,程序员可能会出于以下几种原因选择这样做,但客观地说,我怀疑它实际上是必要(在技术意义上你是别无选择,只能去做。)