模板设计模式:基于抽象类的设计模式,抽象类中固化好的模式,具体实现交给子类
最具代表性的模板设计模式:Servlet
实例:功能设计,不同的子类有相同的功能,这些功能在父类中已经被定义,但是各个子类的具体实现并不相同,在调用子类的方法时,实现的功能不同
抽象类:
1.抽象类虽然规定了子类必须实现的动作,但是依然有单继承的局限
2.抽象类无法直接产生实例化对象,需要子类向上转型为其实例化
抽象类的设计远比接口复杂。
接口:(java的核心)
如果要强制约定子类实现并且避免单继承局限,请使用接口
接口优先原则:(在一个场景中即可以使用抽象类,又可以使用接口时,请优先使用接口)
1.接口的概念:接口就是全局常量以及抽象方法的集合
java中使用interface定义接口
子类的实现使用implements关键字
接口的命名使用大写的I开头,用于把接口和类区分开来
实现接口的子类后缀有impl
2.接口多继承:使用逗号隔开
Java中可以使用多继承接口,但是必须覆写父类接口中的所有抽象方法(java可以使用接口来达到多继承的概念)
父接口的相互转换:通过子类实例父接口来进行相互转换
3.街哭的使用限制:
接口中只允许使用public权限,即使没有写出来也是public,不管常量还是方法全部都是public。因为子类接口的权限必须比父类的更低,以后定义接口时,不加任何的修饰符
当一个子类既需要继承抽象类又需要实现接口时,先使用extends继承一个抽象类在使用implements实现多个接口
一个抽象类可以使用implements实现多个接口;接口不能继承抽象类
接口可以使用extends继承多个父接口
接口中也可以定义:普通内部类,内部静态类,内部接口
接口的应用:定义操作标准、表示能力、分布式开发中暴露远程服务方法:分布式开发指的是同一个系统在多个主机上同时运行