【问题标题】:use of private method inside abstract class [duplicate]在抽象类中使用私有方法[重复]
【发布时间】:2011-04-21 12:08:46
【问题描述】:

在抽象类中编写私有方法有什么用,我们可以在该类中编写公共静态吗?请举个例子。

【问题讨论】:

  • 您是否尝试过在抽象类中创建私有方法?怎么了?这就是你的答案
  • 听起来像一个家庭作业,如果是的话,也用 homework 关键字标记它

标签: java


【解决方案1】:

您可以在抽象类中使用任何类型的方法。抽象类和普通类的唯一区别是抽象类包含没有主体的方法:

 public abstract Foo {
     public void foo() {
          bar();
     }

     private void bar() {
          doSomething();
     }

     protected abstract void doSomething();
 }

所以虽然bar() 不知道doSomething() 到底做了什么,但它知道它最终会存在以及如何调用它。

这足以让编译器为类创建字节码。

【讨论】:

    【解决方案2】:

    我们可以在抽象类和私有方法中实现我们的实现

    例如:

    public abstract class AbstractDAO{
    
    public void save(){
      validate();
      //save
    }
    
      private void validate(){ // we are hiding this method
      }
    
    }
    

    【讨论】:

      【解决方案3】:

      但抽象方法永远不能是私有的,它必须是公共的或受保护的,否则子类将无法定义它

      【讨论】:

      • 他说的不仅仅是抽象方法。
      猜你喜欢
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 2016-06-20
      • 1970-01-01
      • 1970-01-01
      • 2010-12-14
      • 1970-01-01
      • 2012-09-21
      相关资源
      最近更新 更多