接口与抽象类
适配器设计
interface Window{
public void open();
public void close();
public void icon();
public void unicon();
}
abstract class WindowAdpater implements Window{
public void open(){};
public void close(){};
public void icon(){};
public void unicon(){};
}
class MyWindow extends WindowAdpater{
public void open(){
System.out.println("打开窗口");
}
}
public class AdpaterDemo01 {
public static void main(String args[]){
Window win=new MyWindow();
win.open();
}
}
运行结果:
打开窗口
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("吃苹果");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("吃橘子");
}
}
public class InterDemo01 {
public static void main(String args[]){
Fruit f=new Apple();
f.eat();
}
}
运行结果:
吃苹果
上面这段吃水果的代码,在实际中是有问题的,因为子类与方法联系太紧密。所以要添加一个中间类。
工厂设计模式
interface Fruit{
public void eat();
}
class Apple implements Fruit{
public void eat(){
System.out.println("吃苹果");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("吃橘子");
}
}
class Factory{
public static Fruit getFruit(String className){
Fruit f=null;
if("apple".equals(className)){
f=new Apple();
}
return f;
}
}
public class InterDemo01 {
public static void main(String args[]){
Fruit f=Factory.getFruit("apple");
f.eat();
}
}
运行结果:
吃苹果