面向对象有三大特征:封装性、继承性、多态性,其中封装性指的是隐藏了对象的属性和实现细节,仅对外提供公共的访问方式,这样就隔离了具体的变化,便于使用,提高了复用性和安全性。对于继承性,就是两种事物间存在着一定的所属关系,那么继承的类就可以从被继承的类中获得一些属性和方法;这就提高了代码的复用性。继承是作为多态的前提的。多态是说父类或接口的引用指向了子类对象,这就提高了程序的扩展性,也就是说只要实现或继承了同一个接口或类,那么就可以使用父类中相应的方法,提高程序扩展性,但是多态有一点不好之处在于:父类引用不能访问子类中的成员。
举例来说:就是:比如说你要去饭店吃饭,你只需要饭店,找到饭店的服务员,跟她说你要吃什么,然后就会给你做出来让你吃,你并不需要知道这个饭是怎么错做的,你只需要面向这个服务员,告诉他你要吃什么,然后他也只需要面向你吃完收到钱就好,不需要知道你怎么对这个饭进行吃。
特点:
1:将复杂的事情简单化。
2:面向对象将以前的过程中的执行者,变成了指挥者。
3:面向对象这种思想是符合现在人们思考习惯的一种思想。
面向对象的三大特征:封装,继承、多态
面向对象设计 |
其实就是在管理和维护对象之间的关系 |
面向对象开发 |
就是不断的创建对象,使用对象,指挥对象做事情 |
1.封装:把对象的属性隐藏起来,仅对外提供公共访问方式
好处:提高了代码的复用性和安全性
原则:把属性隐藏,提供公共方法对其访问
2.继承:把多个类中相同属性和行为,抽取到单独一个类中,作为父类,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。
好处:提高了代码的复用性和可维护性,让类之间产生了关联,是多态的前提
弊端:类之间的耦合性增强(高内聚,低耦合)
注:
①子类中所有的构造函数都会默认访问父类中的空参数的构造函数,默认第一行有super();若无空参数构造函数,子类中需指定;另外,子类构造函数中可自己用this指定自身的其他构造函数。
3.多态:同一行为,具有多个不同的表现形式
前提:继承或实现;方法重写;父类引用指向子类对象。
好处:父类类型作为方法的形式参数,传递子类对象给方法,进行方法的调用的,更能体现多态的便利和扩展性,提高代码的复用性!
弊端:当父类引用指向子类对象时,虽提高了扩展性,但只能访问父类中具备的方法,不可访问子类中的方法;即访问的局限性。