封装
封装最好理解了。是把客观事物封装成抽象的类,并且类可以把自己私有的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。
继承
继承它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。
在某些语言(C++)中,一个子类可以继承多个基类。
但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。
在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“属于”关系。例如:动物类的子类有狗和腿,两个子类均可以继承父类,但是不能相互继承。
多态
多态简单的说,就是一句话:允许不同的子类继承父类同一个方法但是呈现不同的效果。
实现多态,有二种方式,重写,重载。
重写,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。
但是要注意的就是:重载只是一种语言特性,与多态无关,与面向对象也无关!
引用一句Bruce Eckel的话:“不要犯傻,如果它不是晚邦定,它就不是多态。”
那么,多态的作用是什么呢?我们知道,封装可以隐藏实现细节,使得代码模块化;继承可以扩展已存在的代码模块(类);它们的目的都是为了——代码重用。而多态则是为了实现另一个目的——接口重用!