如何在接口中实现嵌套的非静态类?

时间:2016-01-28 15:07:25

标签: java interface

有这个课程

public abstract class Mother{
  public class Embryo{
    public void ecluse(){
      bear(this);
    }
  }
  abstract void bear(Embryo e);
}

只有拥有母亲的实例,我才能创建一个Embryo实例:

new Mother(){...}.new Embryo().ecluse();

问题:

  • 如何将Mother定义为界面?

1 个答案:

答案 0 :(得分:6)

嵌套类// Create dummy table to render table rows inside const Table = React.createClass({ displayName: 'Table', render: function() { return (<table><tbody>{this.props.children}</tbody></table>); } }); const mockPopularSearchList = TestUtils.renderIntoDocument(<Table><TableRow name={mockName} /></Table>); Embryo中隐含static

因此,它无权访问与您的interface接口实例相关的虚拟可调用方法bear

因此:

  • 您将Mother声明为Mother,然后您的interface Embryo方法无法虚拟调用ecluse,因为它是静态范围的
  • 或者,您将bear保留为Mother,但需要abstract class(匿名或子类'实例)的实例才能获得{{1}的实例除非另有说明,否则Mother是实例范围的,并且可以虚拟调用Embryo

自包含示例

Embryo