面向对象三大特性:封装,继承,多态。
封装,即将业务逻辑或功能方法写到一个类中,与程序母体分离。这一特性实现了程序的高复用性,封装好的类可以拿到其他地方用,就像自定义了一个空间一样。
继承,在程序设计中经常会创建基类来约定该类需要做什么,而将程序实现交给继承其的子类实现,规则是基类中有的方法,子类中必须也要有,而且子类可以扩充,添加其他方法。这样一来通过继承就会衍生出很多不同的子类,这些子类能够完成很多不同的任务和功能,这就是面向对象的三大特性之一,多态。
继承和多态的优势不只是将共有的东西集合到一个类中共用,其还大大提高了程序的可维护性和可扩展性,使程序更加灵活。在封装类时有一个基本原则就是“单一职责原则”,即一个类只完成一个功能,再通过继承思想,使一个子类只完成一个功能,在维护代码时,只需要修改有问题的子类就可以了,而其他子类是不可见的,这不仅提高了代码的安全性(表现在避免误删,误改或隐藏其他子类中不想暴露的东西),也使代码维护更加方便,清晰。如果想扩展功能的话,只需添加一个子类,将功能代码封装到该子类中即可,而不需要操作其他类,同样其他子类也是不可见的。
在此,继承基类表现的是is a的关系,子类is a 基类。 而继承接口表现得是can do 关系,并且接口约定一些规范,能做什么。比如一个类继承了这个接口,就是 类can do 接口功能。能够继承多个接口,俗称多继承。只是接口中不能实现方法而抽象类可以。