【Java】面向对象的三大特征

1、面向对象的特征

面向对象的最终目的是要构建强健、安全、高效的项目,也就是要实现项目的高内聚和低耦合:

封装:

「封装」字面意思是把某个东西装起来,不让外界看到,也体现出了「简洁美」。

例如:洗衣机只能看到外部操作按钮,洗衣服时无需关注洗衣机内部原理,也不会看到内部凌乱的走线,影响用户体验。

在面向对象的思想中「封装」则表示在一个实体类中将属性私有化,提供一些外部可以访问该属性的方法;

或者对功能实现类进行抽象化,提炼出接口,只供外界调用,不对外暴露该方法的具体实现。

继承:

「继承」字面意思是父与子之间发生的一种关系。

在面向对象的思想中「继承」是指从已有类得到继承信息创建新类的过程。

提供继承信息的类被称为父类(超类、基类);得到继承信息的类被称为子类(派生类)。

继承让变化中的软件系统有了一定的延续性。

Object 类是所有类的父类(树结构中的根节点) 。当一个类没有显式声明父类,则该类会隐式继承 Object 类。

多态:

多态性是指允许不同子类型的对象对同一消息作出不同的响应(动物需要吃东西,小猫吃猫粮,小狗吃狗粮)。

简单的说就是用同样的「对象引用」调用同样的方法但是做了不同的事情(new 一个动物的「对象引用」调用 eat() 方法,但是小猫吃了猫粮,小狗吃了狗粮)。

多态性分为编译时的多态性和运行时的多态性。

方法重载(overload)实现的是编译时的多态性(也称为前绑定),而方法重写 (override)实现的是运行时的多态性(也称为后绑定)。

运行时的多态是面向对象最精髓的东西,要实现多态需要做两件事:1. 方法重写(子类继承父类并重写父类中已有的或抽象的方法);2. 对象造型(用父类型引用指向子类型对象,这样同样的引用调用同样的方法就会根据子类对象的不同而表现出不同的行为)。

抽象:

在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两方面。抽象只关注对象有哪些属性和行为,并不关注这些行为的细节是什么。

接口属于特殊化的抽象,接口可以被其他类实现。

一个类只能继承一个父类,但是可以实现多个接口。

Related Posts

学习路线
© 2019 - 2022 · Home · Theme Simpleness Powered by Hugo ·