有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java OOP:如何强制扩展类提供私有方法?

示例:如何将进一步的特定处理方法设置为私有方法

原因:我希望能够创建一个类型为B或C的新对象,并且程序员只能看到doStuff()。同时,B类和C类提供了额外的功能

abstract class A
{
  protected abstract void furtherSpecificProcessing();

  //concrete method utilizing abstract method
  public void doStuff()
  { 
   //busy code
   furtherSpecificProcessing();
   //more busy code
  }

public class B extends A
{
  public void furtherSpecificProcessing
  {
    //Class B specific processing
  }
}

public class C extends A
{
 public void furtherSpecificProcessing
 {
   //Class C specific processing
 }
}

共 (2) 个答案

  1. # 1 楼答案

    我认为不能强制返回类型为私有的,以覆盖方法

    Access Must not be more restrictive. Can be less restrictive.

    我建议读method overriding rules

  2. # 2 楼答案

    在类B和C中都将方法声明为受保护而不是公共。 比你需要的更有效:

    B b = new B();
    b.doStuff(); // Will do stuff
    b.furtherSpecificProcessing(); // Will not compile
    

    C类的实例也是如此