чето мозг сломал
пример их Мука

Код AS1/AS2:
public function Eat(foodItem) {
if (foodItem is Apple) {
if (foodItem.hasWorm()){
// яблоко червивое....
}
}
}
вот на Нахе:

Код AS3:
class Food
{
private var Callories:Float;
private var Name:String;
public function getCallories() { return Callories; }
public function getName() { return Name; }
public function setName(newName):Void {
Name = newName;
}
public function setCallories(newCallories:Float) {
Callories = newCallories;
}
public function new(newCallories)
{
setCallories(newCallories);
}
}
class Apple extends Food
{
static var default_cal:Float = 100;
private var _hasWorm:Bool;
public function hasWorm():Bool {
return _hasWorm;
}
public function new(newCallories:Float)
{
super(if (newCallories == 0) default_cal else newCallories);
setName('Apple');
_hasWorm = if (Math.random() > 0.5) false else true;
}
}

Код AS1/AS2:
public function Eat(piece:Food) {
if (Std.is(piece,Apple)) {
if (piece.hasWorm()) {
trace (_PetName +' founds worm in '+ piece.getName+' and refuses to eat it.');
}
}
}
ругается:
Цитата:
|
Food has no field hasWorm
|
пока я не обращаюсь к "hasWorm", все работает, и суши ест и яблоки

как этот кусок переделать чтобы не ругался?