这个问题相信有不少人都在面试中被问到过,如果没有好好准备一下,回答的可能就会条理不清晰,思维混乱,然后,.....就尴尬了...
当面试官问到这个问题时:
首先,要引申出类:类是面向对象中的一个很重要的概念,因为类是很对个具有相同属性和行为特征的对象所抽象出来的,对象是类的一个实例。
然后,围绕类的三个特征来说:封装、继承和多态。
1、封装:面向对象语言的精髓
把一些属性和方法封装起来,形成一个类;
类的属性一般私有;
类的方法:该公开的就公开,该私有的私有。
2、继承:面向对象的主要功能
继承是一种构建新类的方式,它是基于已有的类的定义为基础,构建新的类,已有的类称为父类,新构建的类称为子类,子类能调用父类的非private修饰的成员,同时还可以自己添加一些新的成员,扩充父类,甚至重写父类已有的方法,让子类的表现更独特,更专业。
3、多态
从一定角度看,封装和继承几乎都是为多态而准备的。多态是同一个行为具有多个不同表现形式或形态的能力。多态性是对象多种表现形式的体现。
类中多个方法的重载叫多态,父子类中方法的覆盖也叫多态。
因此多态有两种体现:一个是方法的重载,一个是方法的覆盖。
多态有方法的多态和对象的多态(一个对象多种形态)。