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 }
原文地址:https://www.cnblogs.com/shenhainixin/p/5069335.html