在面试中经常会被问到“你对面向对象的理解”
所谓面向对象,颠覆了面向过程的“强调解决问题的步骤”的这一观念,面向对象是把一切事物都看做对象,对象用类来抽象,类封装了一些成员变量和成员函数。成员变量是该类实例化后的所有对象都具有的属性,而成员函数是这些对象能够做的操作。
面向对象有三大特征:继承、多态、封装;
类的继承性是指从已有的一个类来extends子类,子类具有了父类的所有特征,同时,子类也可以有新的特性。比如:人是一个类,男人具有了人类的所有的特性,比如思考,比如劳动。同时,男人也有新的特性,比如男人会长胡子。
类的封装是指类把所有的属性和部分操作都封闭起来,一般为private属性,而仅仅提供一些接口出来让其他人使用,这些接口是具有public属性的一部分成员函数,使用的人直接拿来用即得到对于该对象的一些操作,没有必要懂得类里面关于该操作的具体实现。
类的多态性是一个对象的某项功能可以处理不同类型的问题,或者一个子类可以将父类的某个功能替换成新的功能,具体到编程的方面来说实现类的多态有override和overload,也就是覆盖和重载。