JAVA SE --接口

来源:互联网 发布:西瑞鞋子怎么样知乎 编辑:程序博客网 时间:2024/05/17 22:36

1.抽象类:如果一个类包含一个或多个抽象方法(抽象方法要用abstract修饰),该类必须被限定为抽象类,抽象类不能被实例化,但它被继承时,实例化子类对象时抽象类的构造方法也会执行。

2.接口是一个极度抽象的类,接口只提供形式,而不提供任何具体的实现,接口类中只能存在未实现的public方法,和变量(也叫域,这些域隐式地是static和final),

3.多态里面的向上转型不仅试用与普通类,对抽象类,接口都试用,他们的行为都是相同的。(策略设计模式有应用)

4.Java的多重继承:继承格式(class Hero extends ActionChracter implement CanFight,CanSwim,CanFly)

5.接口通过继承可以扩展接口,一般情况下,继承只用于继承单一类,但对接口可以引用多个,用逗号隔开即可。

6.接口适用于适配器设计模式,适配器的代码将接受你所拥有的接口,生成你所需要的接口,也适用于工厂设计模式,工厂设计模式:不是通过构造器创建对象,而是通过调用方法去生成实现某个接口的对象。
eg:在相同的棋盘上下国际象棋和西洋跳棋

    interface Game{     boolean  move();    }    interface Gamefactory{        Game getGame();    }    class Checkers  implements Game{        private int moves=0;        private static final int MOVES=3;        public boolean move(){            System.out.println("Checkers move "+moves);            return ++moves !=MOVES;        }    }    class CheckersFactory  implements GameFactory{         public Game getGame(){             return new Checkers();         }    }    class Chess  implements Game{        private int moves=0;        private static final int MOVES=4;        public boolean move(){            System.out.println("Checkers move "+moves);            return ++moves !=MOVES;        }    }    class ChessFactory  implements GameFactory{         public Game getGame(){             return new Chess();         }    }    public class Games{        public static void playGame(Gamefactory factory){            Game s=factory.getGame();            while(s.move());        }    }    --打印    Checkers move 0;    Checkers move 1;    Checkers move 2;    Chess move 0;    Chess move 1;    Chess move 2;    Chess move 3;
原创粉丝点击