首先,面向对象是一种编程思想.
通俗来说就是,我要完成某件事,但并不是我本身去亲自完成(区别于面向过程,面向过程的更注重于解决问题的步骤,且都需要本身去执行),而是不断去创建对象去完成,可能我们所创建的对象,还需要继续创建新的对象,所以是一层一层的关系,比如,我们要解决问题,而调用了一个方法,但是这个方法的内容确是又调用了三个方法,它本身解决不了问题,但是他能把决绝问题的方法组合,恰恰是这些组合的方法才是真正的执行者,面向对象解决问题的方式是一个类似于金字塔形状的结构,而面向过程则像是一根柱子结构,
面向对象有三大特点:封装,继承,多态
封装:通俗来讲就是选择性隔离,比如说一个类中,有一个方法,这个方法只在本类中使用,所以就得加private修饰,再说个例子:把自己,妻子,孩子,看做是一个家的类,存款就是这个家类的成员属性,那么,存款就只能被家里的人访问,这个就是私有,如果外人想要访问,那么我们需要对外提供一种公共的访问方式,比如说:借钱,只有当外面的人跟我们借钱时,我才能把钱给他,他们不可能不经过同意就可以拿到钱,这只是一个简单的例子,封装就是把不许要对外暴露的东西私有化,也或是将某些东西只给我们想让看到他们的人使用,不让使用的人,就把他们隔离开,在Java中封装除了一些修饰符外,还有包等等,包也可以起到一些效果,只不过,权限有大有小,
继承:也很好理解,这就跟自然界的结构关系是相通的,就是,父类没有私有的东西,子类中可以拿来用,父类中有的,但是子类中觉得不满足的东西,子类可以重新获得,所以子类越往下,拥有的东西越多,不仅有父类继承过来的,还有自己重新获得的,所以说在,Java中,想要看共性的东西,就在顶端的父类中寻找,想要特性的东西,就在底层的子类中寻找,
多态:就是一种事物,拥有的多种称呼,比如说猫,把猫看做一个类的话,它的父类就是动物类,再往上就是生物类,当然也可以有更细的划分,这种特点就是,从顶层到底层是一个由抽象到具体的过程,一级一级实现,不可能生物下来就是猫类,显然不符合自然规律,生物的特征可以在猫的身上找到,也可以说是猫继承了动物,动物又继承了生物,但是猫特有的东西,不一定符合顶层生物的特点,这又是顶层生物的定义,显然是符合整个生物类的
例: 生物类 one = new cat(); 动物 one1 = new cat();这些句子都是从右往左读,猫是一只动物,猫是一个生物,这些都符合逻辑,所以猫既可以称呼为猫,也可以称呼为动物,亦或是生物,所以一种事物可以有不同的称呼,这就是多态,还需记住:多态有三个条件:必须有继承,必须有方法的重写,父类引用指向子类对象,
以上只能给您一些帮您做一些简单的理解,希望对您有用, |