Cake.java
package five;
public abstract class Cake {
public abstract void feel();
}
Decorate.java
package five;
public abstract class Decorate extends Cake {
public Cake cake;
public Decorate(Cake cake) {
this.cake = cake;
}
public abstract void feel();
}
ChococateCake.java
package five;
public class ChococateCake extends Cake {
@Override
public void feel() {
// TODO Auto-generated method stub
System.out.println("略有点苦味的巧克力");
}
}
IceCreamCake.java
package five;
public class IceCreamCake extends Cake {
@Override
public void feel() {
// TODO Auto-generated method stub
System.out.println("略有点凉的冰淇凌");
}
}
NutDecorate.java
package five;
public class NutDecorate extends Decorate{
private String str = "用坚果进行修饰";
public NutDecorate(Cake cake) {
super(cake);
// TODO Auto-generated constructor stub
}
@Override
public void feel() {
// TODO Auto-generated method stub
super.cake.feel();
System.out.println(str);
}
}
FlowerDecorate.java
package five;
public class FlowerDecorate extends Decorate {
private String str = "用花进行修饰";
public FlowerDecorate(Cake cake) {
super(cake);
// TODO Auto-generated constructor stub
}
@Override
public void feel() {
// TODO Auto-generated method stub
super.cake.feel();
System.out.println(str);
}
}
Main.java
package five;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
public class Main {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Cake c = new ChococateCake();
Cake nut = new NutDecorate(c);
nut.feel();
InputStream fis = new FileInputStream("d:\\");
InputStream bis = new BufferedInputStream(fis, 16);
InputStream ois = new ObjectInputStream(bis);
}
}