JAVA SE --接口

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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值