Com relação ao item A, questão 08 da aula 04,
"Não podemos utilizar o modificador de acesso privado para membros abstratos."
Explicação:
"Exato. A menor restrição possível é o acesso protegido, que permite que as tanto a superclass como as classes filhas acessem o membro. Portanto, se o membro for abstrato, alguém que esteja herdando da classe abstrata precisa ter acesso também".
Considero, que a resposta não está correta! No meu entendimento, uma classe abstrata pode sim ter atributos privados, por exemplo quando os mesmos devem ser utilizados por outros métodos privados da própria classe, ou seja, quando não for necessário que as subclasses tenham conhecimento destes métodos privados e consequentemente dos atributos privados. Segue um exemplo hipotético:
abstract class A {
private var x = 1
private fun incX() {
x++
}
private fun decX() {
x--
}
fun iAmPublic() { ... }
}
class ChildA: A() { ... }
Naturalmente é uma situação rara, mas possível. Se concorda ou não, coloque suas considerações.
Att.