又看到这个玩意,顺手写下来
面向对象三大特征:
封装:本质是将事物相关的属性和方法封装在一个类里面,我们调用类创建实例的时候,不用关心类内部的代码细节
继承:子类需要复用父类里面的属性或者方法,当然子类也可以提供自己的属性和方法
多态:同一个方法不同对象调用同一个方法功能的表现形式不一样,例如:a、不同的两个对象,字符串的加法和整数的加法,同样是加法,实现的功能是不一样的;
b、这两个对象之间没有任何直接继承关系,但是所有对象的最终父类都是元类
面向过程的本质就像是一个开放的箱子,所有的变量和方法都是暴露在外面的,一个线程下,所有的方法共享全局变量,这个全局变量可以被所有的方法修改,这就带来一个问题:如果一个方法f1想要全局变量只被它所用,但是其他方法肯定也要用的,这样就会造成变量修改的冲突;这时候类的概念应运而生,所有的变量和方法封装在类(黑箱子)内部,类属性相当于类内部的全局变量,实例属性相当于方法内部的局部变量,这样,只需要通过类创建不同实例a,b,c,d,实例a,b,c,d就可以将这些属性,方法全部私有化,随便实例自己怎么折腾