# 接口
## 抽象类:
1. 理解起来很容易,比如父类是动物,子类是狗;动物嘛,肯定得会呼吸;
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
 | public class Animal {     protected  void breath()       {         System.out.println("breath");     } } public class Mouse extends Animal {     public  static  void  main(String a[])     {         Animal mouse = new Mouse("11",1);              mouse.breath();                                     }     public  Mouse(String myName, int myid) {         super(myName, myid);     }     @Override     protected void breath() {                  System.out.println("mousebreath");     }    }
 | 
## 接口
1. 抽象类是说有这么一个父类方法几乎不用,但是又想定义出来,形成继承关系;使得通过父类可以简单调用相应方法;那么接口呢,就是父类中全部的东西都是抽象的;就像是动物,动物有一大堆方法,呼吸啊,吃啊之类的;这个类我们将其接口话,所有implements动物的,都得有这些方法;你不重写就算错
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
 | public interface Instrument {     int VALUE = 5 ;     void  play();     void  adjust(); } public class Wind implements  Instrument{     public  static  void  main(String a[])     {         Instrument instrument = new Wind();             int b =  Wind.VALUE;                          }     @Override     public void play() {     }     @Override     public void adjust() {     } }
 | 
## 完全解耦 与适配器类
- 书上写的太晕了,完全看不懂;解耦嘛,简单说就是通过接口,把只有继承关系中能用的开放出去;
- 抽象类可以不实现接口的方法
- 适配器
## 多重继承
1.当存在继承+接口时,接口不需要实现;
2. 接口的作用 向上转型为多个父类(接口类),同时防止创建对象
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
 | public interface CanFight {            void  fight(); } public class ActionCharacter {     public  void  fight()     {         System.out.println("fight1");     } } public class Hero extends  ActionCharacter implements  CanFight{     @Override     public void fight() {                     super.fight();         System.out.println("fight");     } } public class Adventure {     public  static  void  t(CanFight fight)     {         fight.fight();     }     public  static  void  t2(ActionCharacter x )     {         x.fight();     }     public  static  void  main(String a[])     {         Hero hero = new Hero();         t(hero);         t2(hero);     } }
 | 
## 通过继承扩展接口
1. 接口可以通过继承保留父类接口的方法,同时加入自己的,这样接口的扩展性就变得很好;由于接口继承,方法都是未实现的,所以肯定没有重写什么的,也就不会出现c++多重继承不知道继承谁的问题了;
## 适配器 (需要重点复习)
插座示例
## 工厂类
- 和适配器一样,属于模式上的事情;所以日后再说?