在抽象类中编写私有方法有什么用,我们可以在该类中编写公共静态吗?请举个例子。
答案 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)
但抽象方法永远不能是私有的,它必须是公共的或受保护的,否则子类不能定义它