【Java面试必考】面向对象核心:三大特性、抽象类与接口、重写与重载详解
1. 面向对象三大特性背诵版封装Encapsulation隐藏对象的属性和实现细节仅对外公开接口。通俗解释就像ATM机你只需要知道怎么插卡、输入密码、取钱对外暴露的方法不需要知道机器内部是怎么把钱吐出来的内部逻辑被隐藏。面试考点提高代码安全性、复用性和高内聚低耦合。继承Inheritance子类继承父类的特征和行为使得子类对象具有父类的实例域和方法。通俗解释就像子承父业儿子继承了父亲的财产和手艺还可以自己再学一门新手艺扩展自己的方法。重点Java是单继承多实现。继承破坏了封装性子类可以看到父类细节。多态Polymorphism同一个行为具有多个不同表现形式或形态的能力。通俗解释老板喊一句“开始干活”程序员开始敲代码保洁阿姨开始扫地财务开始算账。同一个指令不同对象执行效果不同。三个必要条件继承、重写、父类引用指向子类对象Animal a new Dog();。2. 抽象类 vs 接口高频易混淆比较维度抽象类 (abstract class)接口 (interface)本质认知表示这个对象**“是什么”**is-a表示这个对象**“能做什么”**has-a/行为规范继承关系单继承多实现一个类可以实现多个接口成员变量可以有各种类型的变量只能是public static final的常量方法实现可以有普通方法和抽象方法Java 8以后可有default和static方法实现构造函数有构造函数供子类调用没有构造函数通俗场景门抽象类有开/关的属性和基本动作。木门、铁门继承它。报警器接口定义了报警的行为。如果你想做一扇“报警门”就继承“门”这个抽象类并实现“报警器”这个接口。3. 重载Overload vs 重写Override重载Overload - 编译时多态定义同一个类中方法名相同参数列表不同类型、个数、顺序不同。通俗解释同一个小明你给他10块钱他给你买瓶水参数是10你给他100块钱他给你买包烟参数是100。根据你给的“参数”不同他做的事情不同。注意返回值类型不同不能作为重载的依据。重写Override - 运行时多态定义子类重新实现父类中非 private 的方法方法名、参数列表必须完全相同。通俗解释父亲有个方法叫“开车”开的是桑塔纳儿子重写了这个方法开的是保时捷。原则“两同两小一大”方法名参数相同子类抛出的异常、返回值类型要比父类更小或相等子类方法访问权限要比父类更大或相等。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2428072.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!