🍄面试官:

  • 说一下Java都有什么特性?

🚑解答思路:

  • 三大特性名称
  • 三大特性的定义
  • 三大特性优点和作用

💊开始忽悠

  • Java有三大特性 封装、继承、多态
  • 封装
  • 定义
  • 常见的就是将属性私有提供Get Set 方法 使用者无法得知内部数据怎么存储。官方点说法就是将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问,要访问该类的代码和数据,必须通过严格的接口控制。
  • 优点
  • 良好的封装能够减少耦合
  • 减轻维护的负担
  • 可以对成员变量进行更精确的控制
  • 隐藏信息,实现细节
  • 继承
  • 定义
  • 使用extends关键词 继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为
  • 特性
  • 子类拥有父类非 private 的属性、方法。
  • 子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。
  • 子类可以用自己的方式实现父类的方法。
  • Java 的继承是单继承,但是可以多重继承,单继承就是一个子类只能继承一个父类,多重继承就是,例如 B 类继承 A 类,C 类继承 B 类,所以按照关系就是 B 类是 C 类的父类,A 类是 B 类的父类,这是 Java 继承区别于 C++ 继承的一个特性。
  • 优点
  • 提高代码的复用率
  • 缺点
  • 提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)
  • 多态<父类引用指向子类对象>
  • 定义
  • 多态是同一个行为具有多个不同表现形式或形态的能力,比如 打印机是个接口那么彩色和黑白打印机就是它的不同表现形式,可以分为运行时多态和编译时多态,编译时多态主要指方法的重载,运行时多态指程序中定义的对象引用所指向的具体类型在运行期间才确定
  • 优点
  • 可以使程序有良好的扩展,并可以对所有类的对象进行通用处理

🍆扩展知识

  • 一个类最多只能有一个父类
  • 接口和接口之间也可以进行继承
  • super关键字指的是父类引用可以访问父类成员、this是只本类引用
  • 构造方法不能继承