Java面向对象_接口应用——策略模式
概念:定义了一系列的算法,将每一种算法封装起来并可以相互替换使用,策略模式让算法独立于使用它的客户应用而独立变化。
接口抽象的就是某种方法。
OO设计原则:1.面向接口编程 2.封装变化 3.多用组合,少用继承
1 public class Practice14 { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 //用父类的引用指向子类对象 6 Bird d=new BigBird("小白"); 7 d.setF(new Fly()); 8 d.fly(); 9 Bird d1=new BigBird("小黑"); 10 d1.setF(new NoFly()); 11 d1.fly(); 12 } 13 } 14 //接口 15 interface FlyType{ 16 void fly(); 17 } 18 19 class Fly implements FlyType{ 20 public void fly(){ 21 System.out.println("我会飞"); 22 } 23 } 24 class NoFly implements FlyType{ 25 public void fly(){ 26 System.out.println("我不会飞"); 27 } 28 } 29 //抽象类 30 abstract class Bird{ 31 private String name; 32 private FlyType f;//组合 33 public Bird(String name){ 34 this.name=name; 35 } 36 public FlyType getF() { 37 return f; 38 } 39 public void setF(FlyType f) { 40 this.f = f; 41 } 42 public void fly(){ 43 System.out.println("我的名字叫"+name); 44 f.fly(); 45 } 46 47 } 48 49 class BigBird extends Bird{ 50 public BigBird(String name){ 51 super(name); 52 } 53 } 54 class ModelBird extends Bird{ 55 public ModelBird(String name){ 56 super(name); 57 } 58 }