接口的默认方法
格式:public default 返回值类型 方法名(参数列表){方法体}
说明:default关键字不能省略
作用:默认方法可以解决接口升级问题 ☆
应用场景:比如一个接口,被10个类实现,那么当此接口需要功能升级,也就是要新添加一个抽象方法,这时候,所有之前实现过此接口的类,全部都会报错,牵一发而动全身。如何解决这个问题呢?答:不添加抽象方法,而是添加默认方法 ☆ 默认方法添加完以后,可以在实例化实现类的时候,进行调用(相当于继承过来了 ☆)
注意事项:☆
①接口的默认方法,可以通过实现类对象直接调用
②接口的默认方法,也可以被接口的实现类进行覆盖重写 @Override(不能加default关键字了 ☆)
接口的静态方法
格式:public static 返回值类型 方法名(参数列表){方法体}
使用:接口名.静态方法名(参数列表);
注意:静态方法不能用接口实现类对象调用,必须使用接口名调用(不同于类中静态方法)
说明:一个类可以实现多个接口,如果多个接口中的静态方法名字相同,对象调用就会冲突 ☆
接口的成员变量
说明:接口中可以定义成员变量,但是必须使用public static final三个关键字来修饰 ☆
final关键字:表示最终的(含义是之后不能修改了)
结论:public static final从效果上看,这其实就是接口中的常量了(常量:不变的量)
格式:
注意事项:
①可以省略public static final,但是注意,不写也照样是这仨玩意
②接口中的常量,必须赋值,不可以不赋值 ☆(没有默认值,不同于类中的成员变量)
③接口中的常量名称,建议完全大写,且用下划线分隔
接口总结
①接口不能有静态代码块,且不能写构造方法
②一个类可以同时实现多个接口,但父类只能有一个:即“单继承、多实现”☆
③继承和实现连写:public class MyInterfaceImpl extends Demo2 implements MyInterfaceA,MyInterfaceB{ … }
④实现类习惯写成以Impl结尾的形式 ☆
⑤如果实现类所实现的多个接口中,存在有重复的抽象方法,那么只需要覆盖重写一次即可
⑥如果实现类所实现的多个接口中,存在有重复的默认方法,那么必须对重复的默认方法重写(不考虑静态方法)
**这种情况重写默认方法后 就不能调用到接口中的默认方法 **
⑦如果实现类没有覆盖重写所有接口中的抽象方法,那么此类必须是抽象类
⑧一个类如果 【直接父类 】当中的方法,和接口中的默认方法产生了冲突,优先使用父类当中的方法 ☆
结论:继承父类优先于接口实现 ☆
⑨类与类之间是单继承;类与接口之间是多实现;接口与接口之间可以多继承extends(不考虑)
⑩多个父接口中的抽象方法可以重复,多个父接口中的默认方法如果重复,子接口必须进行重写
关于java多态
明确概念:多态的含义就是多种形态 ☆
说明:多态性说的是对象,不是类**(对象具有多态性 ☆)**
说明:继承(extends)或实现(implements)是多态性的前提 ☆
案例:小明是一个学生,同时也是一个人,小明是一个对象,这个对象,既有学生的形态,也有人的形态。
结论:一个对象拥有多种形态,这就是对象的多态性 ☆
多态性实质:代码中体现出的多态性,其实就是一句话:【父类引用指向子类对象】☆
多态性格式:左父右子【两种格式】
父类名称 对象名 = new 子类名称();
接口名称 对象名 = new 实现类名称();
代码①:动物与猫的案例 ☆(一只猫,当做动物看,没毛病)
代码②:USB与U盘的案例 ☆
多态形式的访问:☆
①多态情况访问成员变量:☆
直接通过对象名称访问成员变量:(看等号左边是谁,就优先用谁,没有,则向上寻找)
间接通过成员方法访问成员变量:(看该方法属于谁,就优先使用谁,没有,则向上寻找)
重要结论:多态情况,子类方法如果没有重写父类,则访问父类;子类方法如果重写了父类方法,则访问子类 ☆
②多态情况访问成员方法:☆(父子类都有,优先用子类)
多态的好处:☆
结论:推荐多态写法 ☆
场景分析:如果是方法的参数,需求是接收每个子类对象都可以,那么此时需要用多态写法,否则就要方法重载 ☆
好处:等号左边都是父类(或接口),此时等号右边无论new谁,都可以赋值给父类(或接口),使代码更灵活 ☆
关于对象的转型:☆
①对象的向上转型:(多态写法)
格式:父类 对象名 = new 子类名();
例如:Animal obj = new Cat();
小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
总结
虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
[外链图片转存中…(img-RRgLenbY-1710745888453)]
[外链图片转存中…(img-2rsSx9IB-1710745888453)]
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。