我可以限制子类访问超类的特定方法吗?

时间:2015-07-09 07:21:59

标签: inheritance subclass superclass

假设有一个A类,它由子类B继承。

超类有两种方法A1和A2。

我的问题是,我们可以限制B访问A1吗?

1 个答案:

答案 0 :(得分:0)

My question is, can we restrict B from accessing A1?

是的,您可以通过简单地使用Access Modifier(私有)来限制访问a1方法,如:

  class A
 {
    private void a1()
    {
      System.out.println("foo");

     }

    public void a2()
    {
      System.out.println("doo");

    }

}

 class B extends A
 {
   public static void main(String args[])
    {
      B obj=new B();

      obj.a1();// it would give you compile time error
    }

  }

在上面的java代码中, a1 方法被指定为私有,并且它会给出编译时错误。

奖励积分: 子类不继承其父类的私有成员。但是,如果超类具有访问其私有字段的公共或受保护方法,则子类也可以使用这些方法。

你必须阅读: https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html