【发布时间】:2020-02-10 14:44:54
【问题描述】:
我想扩展一个声明为public class A
的类看来,如果我想创建一个扩展类 A 的 Class B,我必须使用 public 修饰符声明它。这是正确的吗? 我很乐意解释为什么在扩展课程时我不能使访问级别“更强”?
我在尝试扩展以下类时遇到了这个问题:
android.support.v7.widget.RecyclerView.Adapter<VH extends android.support.v7.widget.RecyclerView.ViewHolder>
当我扩展 VH 时,RecyclerView.ViewHolder 使用一个名为 :MyViewHolder 的类,它具有私有访问权限,我收到一条消息说:'MyViewHolder 在...中有私有访问权限'
【问题讨论】:
-
不,您可以轻松拥有
public class A,但在某个地方也可以拥有private class B extends A。 -
成员不能拥有比超类更强的访问权限。我猜这个消息,不管它是什么,来自哪里,都与
MyViewHolder的使用有关,而不是它的使用方式。
标签: java android inheritance