在抽象类中使用私有方法

时间:2011-04-21 12:08:46

标签: java

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

3 个答案:

答案 0 :(得分:8)

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

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

     private void bar() {
          doSomething();
     }

     protected abstract void doSomething();
 }

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

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

答案 1 :(得分:2)

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

例如:

public abstract class AbstractDAO{

public void save(){
  validate();
  //save
}

  private void validate(){ // we are hiding this method
  }

}

答案 2 :(得分:-1)

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