# ISummable.java
public interface ISummable {
int getSumUp();
void setNumber(int number);
}
# Zero.java
public class Zero implements ISummable {
@Override
public int getSumUp() {
return 0;
}
@Override
public void setNumber(int number) {
}
}
# Number.java
public class Number implements ISummable {
ISummable mSummable;
private int number;
public Number(ISummable summable) {
this.mSummable = summable;
}
@Override
public void setNumber(int number) {
this.number = number;
}
@Override
public int getSumUp() {
return this.number + mSummable.getSumUp();
}
}
# Main.java
public class Main {
public static void main(String[] args) {
ISummable c = new Zero();
c = new Number(c);
c.setNumber(1);
c = new Number(c);
c.setNumber(2);
c = new Number(c);
c.setNumber(-2);
System.out.println(c.getSumUp());
}
}
# 결과
1
댓글 영역