java中的继承方法可见性概念

时间:2017-10-12 19:29:07

标签: java inheritance

public class A {
public void method1{
   System.out.println("Method 1 called");
  }
public void method2{
   System.out.println("Method 2 called");
  }
}
class B extends A {
   B obj = new B();
   obj.method1();// should be present in scope
   obj.method2();// should not be accessible.Should not be present in scope.
} 
class C extends A {
   C obj = new C();
   obj.method2(); // should be present in scope.
   obj.method1(); // should not be accessible. Should not present in scope.
} 

描述:考虑上面的例子,其中A是超类,B,C是子类。

他们是否有任何适当的程序可以通过以下方式实施:

  1. 子类B必须只能访问method1(),但不能访问method2()。
  2. 子类C必须能够访问method2(),但不能访问method1()。
  3. 谢谢

1 个答案:

答案 0 :(得分:1)

  

他们是否有任何适当的程序可以通过以下方式实施:   子类B必须只能访问method1()而不能访问method2()。   子类C必须能够访问method2(),但不能访问method1()。

这是不可能的,因为如果您想阻止成员的继承,请将其设置为private

但是,一旦将其设置为private,子类B和子类C都不能继承该成员。