En plus de la réponse déjà donnée...
- Ou, vous pouvez garder
val
(ou var
) mais changez le nom du paramètre en quelque chose qui n'entre pas en collision avec la déclaration de la super classe.
Dans une déclaration de classe, les paramètres des déclarations de constructeur sont souvent plus que de simples paramètres. Utilisation de val
ou var
vous déclarez en fait des membres de propriété (et pas seulement des paramètres). Et avec les membres de la propriété viennent des "getters" automatiques (et des "setters" dans le cas de l'option var
). Le getter automatique, dans le cas de l'OP, est appelé getContext()
mais la classe de base possède déjà un getContext() (même signature).
Le plus probable est que l'intention ici était de simplement faire passer le fichier context
au super, dans ce cas, l'autre réponse est la meilleure. Mais, dans le cas où une nouvelle propriété est souhaitée, mais que le nom choisi entre en conflit avec un membre du super ayant un but différent, changer le nom est l'alternative.
En bref le changement de nom s'applique lorsque vous faire veulent une nouvelle variable membre mais une super classe expose déjà un membre différent du même nom.
1 votes
Cela pourrait être utile stackoverflow.com/questions/29268526/