没有可访问的foo类型的封闭实例。为什么?

Mohit Tomar:

我正在学习接口,并创建了以下程序来测试我创建的接口:

public class InterfaceTestClass {
    public static void main(String[] args) {
        InterfaceTestClass x = new InterfaceTestClass();
        Object[] foodItems = { new Apple(), x.new Chicken(), x.new Tiger() };
        for (int i = 0; i < foodItems.length; i++) {
            if (foodItems[i] instanceof Edible) {
                ((Edible) (foodItems[i])).howToEat();
            }
            if (foodItems[i] instanceof Tiger) {
                ((Tiger) (foodItems[i])).howToEat();
            }

        }
    }

    public interface Edible {
        void howToEat();
    }

    public class Apple implements Edible {
        @Override
        public void howToEat() {
            System.out.println("Eat apple as salad");
        }
    }

    public class Chicken implements Edible {

        @Override
        public void howToEat() {
            System.out.println("Eat Chicken with rice");
        }

    }

    public class Tiger {
        public void howToEat() {
            System.out.println("This is not edible");
        }
    }
}

如果我没有在新的Apple()或Chiken或Tiger前面加上“ x”,则会收到与该问题标题相同的错误消息。为什么会这样呢?

Object[] foodItems = { x.new Apple(), x.new Chicken(), x.new Tiger() };
方式:

您的类ChickenApple是内部类,访问内部类函数的方法是OuterClass.InnerClass innerObject = outerObject.new InnerClass()

您已经在此处创建了外部类的对象:InterfaceTestClass x = new InterfaceTestClass();因此,当您放置该类时,将x.new Chicken()有助于使用内部类函数。

查找内部类,以更好地理解概念。希望对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么没有实例就可以访问我的实例变量?

从实例方法返回没有对其封闭类的引用的匿名类时,它具有对此的引用。为什么?

为什么嵌套类的私有成员可以被封闭类的方法访问?

Java-无法访问类型为Foo的封闭实例

为什么String没有原始类型?

无法访问类型为Server的封闭实例

无法访问类型为...的封闭实例

为什么未分配相同的封闭类型

如果没有匹配的封闭类型族实例,有没有办法得到编译时错误?

为什么没有在封闭中捕获异常?

为什么AccValidation没有Monad实例?

为什么没有内置类型的DateTime?

为什么没有ContT的MonadTransControl实例

为什么没有ExceptT的MonadMask实例?

在没有实例的情况下访问Kotlin代表类型

为什么没有HTMLNavElement类型?

为什么AWS ECS Fargate没有实例类型?

为什么在TypeScript中,索引访问的数组元素的类型中没有“未定义”?

为什么没有ParsecT的MonadWriter实例?

Unity 3:该类型没有可访问的构造函数

为什么嵌套类不能具有成员类型是封闭类的成员?

范围内没有封闭的...类型的实例

RSS阅读器,,,作用域内没有类型为Main2的封闭实例

为什么`let foo =(fmap。const)`会因“使用`fmap'而导致(Functor f0)没有实例”而失败?

为什么文字值没有类型?

没有可访问的MainRender类型的封闭实例

为什么某些.NET组件没有可访问的类/方法?

为什么我可以在没有 getter 方法的情况下访问私有实例变量?

为什么没有可空泛型方法?接受引用和值类型