0%

0_java基本特性

java 拥有四个基本特性。

抽象

  1. 将问题领域的事物抽象为 对象
  2. 将拥有相同属性和行为的对象抽象为 类
  3. 将类中相同的属性和行为的类抽象为 父类

抽象包含两个方面,
一个是数据抽象 即 对象的属性
一个是行为抽象 即 对象的方法

封装

隐藏 对象的属性和实现细节,针对性的的暴露接口。

优点:便于使用者使用,避免使用者修改其内部结构

原则:

  • 将所有属性封装
  • 尽可能隐藏对象的操作,对外提供简洁的接口

权限关键字

  1. private 本类 可以访问
  2. default 本类、同包名 可以访问
  3. protected 本类、子类、同包名 可以访问
  4. public 任何地方 可以访问

继承

子类和父类之间的继承关系,子类可以获取到父类的属性和方法。

注:关于子类能否继承父类的私有方法?
从语言角度上说:JDK官方文档明确说明子类不能继承父类的私有方法;
但从内存角度来说,jvm在实例化子类对象之前,会先在内存中创建一个父类对象,然后在父类对象外部放上子类独有的属性,两者合起来形成一个子类对象。所以子类确实拥有父类所有的属性和方法,但是父类中的私有方法子类无法访问

多态

允许将子类类型的指针赋值给父类类型的指针。

多态性使得能够利用同一类(父类)引用不同类的对象,以及根据所引用对象的不同,以不同的方式执行相同的操作。

多态实现包括两种方式:重载和重写

重载

一个类中可以拥有两个方法名相同的函数,但是这两个函数中 参数类型不同、个数不同、顺序不同,方法返回值和访问修饰符可以不同。

重写

重写一般指子类重新实现父类方法的情况: 父类和子类的方法只有实现逻辑不同,父子拥有一致的参数表和返回值。