面向对象三大特征:封装、继承、多态
封装
定义:封装就是隐藏对象的属性和实现细节,仅保留一些对外接口。
作用:
1.增强安全性:如果将对象的一些属性和实现细节加以隐藏,就意味着用户不能去访问这些被隐藏的部分,也就不能随意去更改,就减少了程序的出错甚至毁坏,而且被隐藏的部分通常是对象内部脆弱的部分。
2.简化编程:对于用户来说,他关心的只有他想知道的部分,如果将对象的全部属性和实现细节都展现在用户面前是会很大程度的让对象觉得繁杂,效率也不高,因此隐藏一些对用户不必要的属性和实现过程是很有必要的,只留下一些对用户来说必要的接口来进行访问。
3.便利开发人员对代码的修改:因为对象是隐藏的,就意味着开发人员可以在不影响用户体验的情况下去任意修改被影藏的部分。
实现:访问权限修饰符
1.private类权限:仅限本类可以访问
2.default(默认权限)包权限:仅限本包可以访问
3.protected包权限加继承子类:仅限包内和继承的子类可以访问
4.public公共的:多可以访问
继承
定义:子类可以继承父类的属性和方法
特性:
1.子类可以自动获得父类的所有属性和方法,减少了代码的复用
2.继承机制使对象层次化,类型比较明确
3.使子类与父类多了一些联系,可以进行方法覆盖,构造器调用等一系列操作
4.一个类只允许有一个父类
5.可以声明父类,创建子类(向上造型,也可以向下造型,强制转换)
实现:extends
多态
定义:指不同类的对象对同一消息(方法)做出不同的响应(实现)。
多态存在的三个必要条件
1.要有继承关系
2.要有重写
3.父类引用指向子类对象(造型)
特点
1.多态是继承机制下的一些应用
2.可替换性:多态对已存在代码具有可替代性。例如,多态对圆形Circle类工作,对其他几何体,如圆环,也同样工作
3.可扩充性:为父类添加新的实现类并不影响已存在类的多态性、继承性,以及其他一系列的操作。实际上新加子类更容易获得多态功能
4.接口性:多态是超类(父类或被继承的类),它为子类提供了一个为实现的方法(接口),由它的子类去完善或覆盖该方法(接口)
5.灵活性:它在应用中体现了灵活多变的操作,提高了使用效率。如多态参数的应用,可以把父类直接作为参数,调用它的子类
6.简化性:多态简化应用软件的代码编写和修改过程,尤其在处理大量对象和操作时,这个特点尤为突出和重要。如多态参数,7.不用新建一个子类就去往需要调用的类里添加一次,减少了很多工作。