如何在实现它并实例化该具体类后访问接口的类?

时间:2014-03-23 17:49:41

标签: java

界面中有一个类营养,由另一个类Rose实现。如何通过实例化Rose来访问类营养方法?

 interface forboth {
    void habitat();
    int i = 2;
    static class nutrition {
        static void water() { System.out.println("m in water"); }
        void manure() {};
    }
}

class Rose implements forboth {
    @Override
public void habitat() {}
}

class RoseLotus {
    public static void main(String args[]) {
        Rose rose = new Rose();
        Lotus lotus = new Lotus();
        int j = rose.i;
        rose.nutrition.water();
    }  
}

1 个答案:

答案 0 :(得分:0)

您的nutrition课程为forboth Rose,而不是forboth.nutrition.water();

{{1}}

Java不会将接口中的嵌套类传递给实现类名称空间,以减轻继承多个接口的潜在问题。

顺便说一下,使用大写字母启动类是传统的Java命名约定。当然,这不是必需的,但它会让您的代码对其他人更具可读性(并且它不会将语法高亮显示器混淆在SO上)。