总结这儿的时候突然发现,之前的多线程部分,好像给遗漏了,多线程真的超级重要,之前学操作系统原理的时候讲了,java,包括以后的javaweb都是重点内容,面试也经常问,不说了先把这些写完吧,
接口(interface):
1.接口用interface来定义,可以理解为定义的一组规范,实现该接口的类必须都遵从接口中定义的各种规范,接口的实现是“能不能”,类的继承是“是不是”
2.Java中接口和类是并列的
3.接口中只能定义全局常量(public static final****)和抽象方法(public abstract),但是在书写时修饰符可以省略不写,因为是默认的
4.而且接口中没有构造器,所以接口也不能被实例化,在开发中,接口都是通过让类去实现(implements)接口的方式来用的,若类把接口中的抽象方法全部重写了,则可以实例化该类,如果没重写完,根据抽象类的知识,该类就是一个抽象类了,没法实例化
5.Java类可以实现多个接口,弥补了只能继承一个类的局限性
6.接口与接口之间也可以继承,而且可以多继承
7.接口的具体使用体现了多态性 可以用一个接口类型的引用,再具体实现时表现为实现接口的某个实现类的方法,类似于继承抽象类
8.面向接口编程:需要后面自己在慢慢体会吧:
接口在用的时候也是一种多态性,定义好的接口意味着定义者希望在使用该接口时都遵循这一套规范来进行操作,接口定义好了,在不同人去实现接口时可能就是各种不同情况了比如jdbc的不同接口,不同厂商对应的实现jdbc接口的实现类也不同,更具有通用性,不同实现类可通过配置文件实现,在使用时不需要知道第三方的api,调用的都是接口,不需要知道第三方具体实现的细节,如果切换比如mysql到oracle把接口切换即可

思考:
抽象类和接口有什么异同呢:
相同点:不能实例化,都可以包含抽象方法,都需要继承和实现的类重写其中的所有抽象方法
不同点:1虽然都不能实例化但是接口没有构造器,抽象类有构造器2抽象类也是类所以还是单继承,只能继承一个父类,但是接口可以多继承,一个类也可以实现多个接口.
几种模式:
代理模式:两个类都实现了一个接口,但是被代理类希望让代理类替代被代理类实现其功能,就是代理模式,用代理类的对象调用代理类的方法(其中包含被代理类的方法),也会把被代理类的功能也给执行,也体现了多态(具体的功能等到编译之后的实际执行阶段才确定)