面向对象的三大特性:封装、继承、多态
封装 (Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。
继承 是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
多态 是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作。
方法的重写或方法的覆盖
- 子类根据需求对从父类继承的方法进行重新编写
- 重写时,可以用super.方法的方式来保留父类的方法
- 构造方法不能被重写
方法重写规则
- 方法名相同
- 参数列表相同
- 返回值类型相同或者是其子类
- 访问权限不能严于父类
- 父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法
- 子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法使用super)
- 父类的私有方法不能被子类覆盖
- 不能抛出比父类方法更多的异常
类:具有相同属性和方法的一组对象的集合类是对象的抽象,对象是类的具体
类的组成:属性和方法
参数:行为的要求
行为:(方法) 参数的数量 、类型(形参、实参)
对象:用来描述客观事物的一个实体,由一组属性和方法构成
对象的特征:
属性
- 属性——对象具有的各种特征
- 每个对象的每个属性都拥有特定值
方法
- 方法——对象执行的操作
基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用
方法重载:
- 同一个类中
- 方法名相同
- 参数个数或类型不同
- 与返回值、访问修饰符无关
构造方法重载
自定义构造方法
- 方法名相同
- 参数项不同
- 与返回值、访问修饰符无关
此时系统不再提供默认无参构造方法