Genieクラスの継承を理解しようとしていますが、私はPetクラスのプロパティを継承することになっている2つのクラス(KittenとPuppy)を作成しました。目的はminouに吠えるように求めることですが、_nameは子クラスの範囲外であるようです。どのようにこのプロパティを子クラスに渡すのですか?ここでGenieクラスの継承
は、コードは次のとおりです。
[indent=4]
// Experimenting with classes in Genie
class Pet
_name:string
construct (name:string?)
_name = name
class Kitten : Pet
def meow()
print self._name + " meowed!"
class Puppy : Pet
def bark()
print self._name + " barked!"
init
var minou = new Kitten("Minou")
var duke = new Puppy("Duke")
minou.meow()
duke.bark()
エラーメッセージは次のとおりです。
Test78.gs:16.15-16.24: error: Access to private member `Pet._name' denied
print self._name + " meowed!"
あなたは、単に私が固定されたタイプミスしていた、私は今取得していますエラーメッセージを追加しました。解決策は、privateではなく '_name'を保護することです。 –
しかし、Genieクラスの保護された/パブリックメンバーの構文はわかりませんが、これは制限事項であり、bugzilla.gnome.orgに報告する必要があります –