JAVA 属于一种 OOP (面向对象)语言。那么面向对象具体指的是什么呢?
面向对象的特点:
1、将复杂的事物简单化
2、相对于以前面向过程的执行者转变为现在的面向对象的指挥者
3、面向对象的思想更符合我们习惯的理解思维
面向过程实际上就是面向一个个函数,而面向对象是将一件事物的行为与属性进行了封装,方便使用。
面向对象有三个基本特征:封装、继承、多态
封装:从字面意思就是将对一个事物的理解包装到一个类中。是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。
继承:基于一个已经存在的类进行扩展。可以添加额外的属性、方法。继承所描述的是“is-a”的关系,如果有两个对象A和B,若可以描述为“A是B”,则可以表示A继承B,其中B是被继承者称之为父类或者超类,A是继承者称之为子类或者派生类。学习继承时时刻记住,
1、子类拥有父类非private的属性和方法。
2、子类可以拥有自己属性和方法,即子类可以对父类进行扩展。
3、子类可以用自己的方式实现父类的方法。
学习继承一定少不了这三个东西:构造器、protected关键字、向上转型。
多态:所谓多态就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。因为在程序运行时才确定具体的类,这样,不用修改源程序代码,就可以让引用变量绑定到各种不同的类实现上,从而导致该引用调用的具体方法随之改变,即不修改程序代码就可以改变程序运行时所绑定的具体代码,让程序可以选择多个运行状态,这就是多态性。
Java实现多态有三个必要条件:继承、重写、向上转型。
继承:在多态中必须存在有继承关系的子类和父类。
重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法。
在Java中有两种形式可以实现多态:继承和接口。