Mas é claro que não aceita. Métodos void não retornam valores, como você espera armazenar um valor booleano atribuindo a eles um método void.
Aliás acho que esta sua lógica está um pouco complicada não, atribuir os valores booleanos no atributo booleano aberta, exatamente nos métodos void abre() e fecha(), e usar o método booleano estaAberta() somente para saber se ele está aberto ou não retornando apenas o conteúdo de atributo aberta, assim:
Você pode invocar um método void dentro de um método booleano e até dentro de outro método void, porém não pode atribuir valores de atributos de qualquer tipo com métodos void.
Se você tem um atributo booleano e quer atribuir o seu valor através de um método, este método tem que retornar booleano, se o atributo for String, então o método tem que retornar um valor String, atributo do tipo inteiro só recebe valores de métodos que retornam inteiros, e assim sucessivamente.