1、面向对象思想
面向对象是基于面向过程的编程思想
面向过程:强调的是每一个功能的步骤
面向对象:强调的是对象,然后由对象去调用功能
2、面向对象的思想特点
一种更符合我们思想习惯的思想
可以将复杂的事情简单化
将我们从执行者变成了指挥者
3、面向对象开发
不断的创建对象,使用对象,指挥对象做事
4、面向对象设计
管理和维护对象之间的关系
5、面向对象的特征
封装:隐藏对象的属性和实现细节,仅对外提供公共的访问方式
封装的好处:
1、隐藏实现细节,对外提供公共访问方式
2、提高了代码的复用性
3、提高了安全性
继承:继承是指从已存在的类中定义性的类
java继承特点:单继承、多层继承体系。即一个类只能有一个父类,但父类还可以有父类
继承的好处:
1、提高了代码的复用性
2、提高了代码的维护性
3、让类与类之间产生了关系,是多态的前提(同时也是弊端,增加了代码的耦合性)
多态:同一个对象在不同时刻表现出不同的状态(父类的变量可以引用子类对象的现象)
多态的前提:
(1) 有继承关系
(2) 子类重写父类方法
(3) 父类变量引用子类对象
多态的好处:
(1) 提高了代码的维护性(继承保证)
(2) 提高了代码的扩展性
多态的弊端
只能使用父类定义过的方法,不能够使用子类的特有方法
注意:
多态中访问变量时,使用的是父类的成员(成员变量和成员函数),而方法存在重写,所以调用的是子类的方法(静态方法除外)
6、继承中成员的关系
成员变量:子类不能继承父类的私有成员变量(也有人认为子类能够继承父类的私有成员变量,只是因为权限不够,所以不能调用。因为在子类中调用父类的私有成员变量的时候编译器报的并不是“找不到符号”,而是报的权限错误)。
构造方法:子类不能继承父类的构造方法,但是在子类的构造方法中都会默认调用父类的无参构造方法(因为子类可能会使用父类数据,所以在子类初始前必须先完成父类数据的初始化),如果父类没有无参构造函数,子类在编译时会报错。可以 (1) 为父类添加无参构造方法; (2) super(..) 调用父类有参构造方法; (3) this() 调用其他本类构造函数,但是该构造函数中必须调用了父类的构造函数
成员方法:子类不能继承父类的私有方法