难度:入门级
引言
面向对象编程是利用类和对象编程的一种思想,面向对象编程三大特征是封装、继承、多态。
1、封装
封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
封装将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
封装隐藏了类的属性和内部实现机制,可以在不影响使用的情况下(对外接口不变)改变类的内部结构,同时也保护了数据。
目的
便于使用,增加了代码的可重用性和安全性。
基本要求
封装的基本要求是: 把所有的属性私有化,对每个属性提供getter和setter方法,如果有一个带参的构造函数的话,那一定要写一个不带参的构造函数。
2、继承
Java中所有的类都是通过直接或间接地继承java.lang.Object类得到的。继承而得到的类称为子类(派生类),被继承的类称为父类(超类)。
继承关系在本质上是特殊—一般关系,即is—a关系,继承关系是实现多态的前提。
目的
提高代码复用率
基本要求
在Java中是单继承的,也就是说一个子类只有一个父类。
子类不能继承父类中访问权限为private的成员变量和方法。
子类继承父类,但是对父类的成员变量是无法直接操作,只能通过父类继承过来的setter和getter方法.
子类可以重写父类的方法,及命名与父类同名的成员变量。
3、多态
多态指的是对象的多种形态,即同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。也可以理解为事物存在的多种体现形态(父类的引用类型变量指向了子类对象,或者是接口的引用类型变量指向了接口实现类的对象)
多态有两种:引用多态和方法多态。继承是多态的实现基础。
目的
提高代码复用性,向后兼容,可以提高可扩充性和可维护性,降低耦合度。
基本要求
继承
重写
父类引用子类对象
注意
在多态情况下
- 子父类存在同名的成员变量时,访问的是父类的成员变量。
- 子父类存在同名的非静态的成员函数时,访问的是子类的成员函数。
- 子父类存在同名的静态的成员函数时,访问的是父类的成员函数。
- 父类不能访问子类特有的成员。
知乎六月余安与本账号同属,转载请标明出处!