java - java中有-A关系

标签 java

public class Horse extends Animal {
    private Halter myHalter = new Halter();
    public void tie(LeadRope rope) {
        myHalter.tie(rope); // Delegate tie behavior to the
      // Halter object
    }
}

public class Halter {
    public void tie(LeadRope aRope) {
    // Do the actual tie work here
}
}

在这个例子中,马有一个Halter。我们可以像这样调用myHalter.tie(rope);吗:

public class Horse extends Animal {
    private Halter myHalter = new Halter();

        myHalter.tie(rope); // Without using the public void tie method

}

它给出了一个错误。我对此的解释是,它不是 main() 方法,但任何人都可以用更好的方式解释它。

最佳答案

类主体中除变量/字段声明之外的语句必须放入方法主体构造函数初始化 block 中。例如,如果您尝试编译以下代码就可以了:

public class Horse {

    private Halter myHalter = new Halter();

    {
       myHalter.tie(new LeadRope());
    }
}

关于java - java中有-A关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12837125/

相关文章:

java - thymeleaf 获得前 3 个对象

java - 广播接收器为零且 Oreo + 设备无法工作

java - 每当我尝试更改 Activity 时,我的应用就会崩溃

java - 有没有办法在 Spring security MVC 应用程序的属性文件中配置角色

java - 标签移动时不调用paintComponent

java - 使用 Java 8 迭代二维数组

java - 如何在 Android 上使用 Flurry 运行 Robolectric

java - RxJava 线程安全

java - package-info.java + Hibernate 注解@TypeDefs + Maven

java - 如何在没有协议(protocol)的情况下使用 Apache Commons Validator 验证 URL