一、面对对象的四种特征:
1、封装
将对象封装成一个高度自治和相对封闭的个体,对象属性有这个对象自己的方法来读取和改变。
封装是为了保证软件内部具有优良的模块性的基础,其目的是实现软件部件的“高内聚,低耦合”。
2、继承
在定义和实现一个类的时候,可以在一个已经存在的类的基础上进行,把这个已经存在的类所定义的内容作为自己的内容,并且可以接进行修改和添加新的内容。
3、抽象
抽象就是找出一些事物的相似和共性,然后将这些事物归为一个类,这个类只考虑这些事物的相似和共性之处,并且会忽略与当前主题和目标五官的那些方面,将注意力集中在与当前目标有关的方面。
4、多态
4.1 定义:
指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)。
栗子:有小说(小说)
小说 a = '天官赐福';// TGCF
小说 b = '伪装学渣';// WZXZ
小说 c = '破云';// PY
简单的理解,小说是父类,a,b,c是子类,我们通过小说这个父类可以引用到不同的子类,即多态。但是多态须知的是“向上转型。(说明白点就是继承)”
创建一个父类方法:
1 public class NOVEL { 2 3 public void fun1() { 4 System.out.println("NOVEL中的fun1"); 5 fun2(); 6 } 7 8 9 public void fun2() { 10 System.out.println("NOVEL中的fun2"); 11 } 12 }
创建子类方法继承:
public class TGCF extends NOVEL{ // 子类重载父类方法,父类中不存在该方法,向上转型后,子类是不能引用该方法的 public void fun1(String a) { System.out.println("TGCF中的fun1"); fun2(); } //子类重写父类方法,调用必定使用这个方法 public void fun2() { System.out.println("TGCF中的fun2"); } } public class DuoTaiTest { public static void main(String[] args) { NOVEL a = new TGCF(); // 向上转型 a.fun1(); } } //output: //NOVEL中的fun1 //TGCF中的fun2
4.2 实现方法
(1)继承:在多态中必须存在有继承关系的子类和父类
(2)重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法
(3)向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才能够具备技能调用父类的方法和子类的方法
二、对面对象(OOP)和面向过程的区别
1、面对对象:面对对象的概念或者特征可以解释为:类、对象、继承、封装、多态。
1.1 类(class):类是对大量对象共性的抽象,是客观在人脑海中行程的主观反映,是创建对象的模板。其组成为:属性、方法。
12 对象:一切客观存在的事物都是对象。对象的组成:属性、行为(方法)。
2、和面向过程的区别:
面向过程:是具体化、流程化的解决一个问题需要一步一步分析和实现的。
面向对象:模型化的,只需抽象出一个类,类里面有数据和解决问题的方法,只需要会用不需要考虑如何实现。
栗子:有一天你想吃鱼香肉丝,有两种方法:
①自己买菜(先买肉,再买...),然后自己切菜(先切肉,再处理...),然后炒菜,然后盛到盘子里;(面向过程)
②去饭店,点单,等待老板做好了就可以直接吃,不需要会知道怎么炒的。(面向对象)