面向对象认识(三)

174 阅读2分钟

继承

继承是java面向对象的三大特征之一

继承:把共有的一些属性和方法抽取出来成为另外一个类,这个类就叫做父类。 子类通过extends继承父类,可以使用从父类继承的属性和方法

类中成员:

成员变量、普通方法、构造方法

可继承:

  • 成员变量
  • 普通方法

不可继承

  • 构造方法

private修饰的属性或者方法只是从访问层面不能被继承,可通过继承方法间接访问

继承的特点

  • 单继承,只有一个直接父类
  • 可多重继承
  • 一个类没有显式的父类,那么隐式继承Object类

方法重写

重写的注解:@Override ,用于校验重写是否成功

重载与重写的对比:

  • 重载:方法名相同 参数列表不同(个数 类型 顺序)
  • 重写:对父类方法的拓展,当父类方法无法满足子类需求时,子类需重写父类方法

重写注意事项:

  • 方法名必须相同
  • 参数必须一致
  • 子类方法访问权限修饰符>=父类方法访问权限修饰符
  • 若被重写方法有返回值,子类方法返回值类型<=父类方法返回值类型,如:String<Object

Object类

Object类是所有类的根类,每个类都使用Object作为超类。【注:接口没有关系】

Object常用方法:

  • String toString() 返回调用此方法的对象的字符串表示形式
  • boolean equals(Object obj) 比较两个对象是否“相等”,底层通过 == 比较是否相等

我们在定义类的时候通常会覆写toString和equals方法,以满足我们的需求

== 比较运算符的特点

  • 基本数据类型变量: 比较的就是值是否相等
  • 引用数据类型变量: 比较的是对象的地址值是否一样 【注:排除String特殊情况】

访问权限修饰符

访问权限排序:private < 默认不写(注意不要添加default修饰) < protected < public

作用:主要控制类以及类中成员的访问权限

主要修饰类中的字段、方法、构造方法、内部类

  • public 默认 可以修饰类(内部类,外部类)
  • private protected 不能修饰外部类
  • 都不能修饰局部变量

访问权限列表

同一个类中成员同一个包中成员不同包但存在继承的子类全局
private(私有)
默认不写
protected(受保护的)
public