面向对象的特征有哪些方面?
一、封装
隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为相结合,形成一个有机的整体,也就是将数据和操作数据的源代码进行有机的结合,形成”类“,其中数据和函数都是类的成员。
封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,以特定的访问权限来使用类的成员。
属性的封装: private 属性类型 属性名称
方法的封装:private 方法的返回值 方法名称(参数列表){ }
只要是被封装的属性,则必须通过setter和getter方法设置和取得,即只有通过这个类自己的方法才可以访问这些成员变量。
(封装是指将事物的属性和行为包装到对象中,这个对象只对外公布需要公开的属性和行为,而这个公布也是可以有选择性的公布给其他对象。在java中能使用private、protected、public三种修饰符或不用(即默认default)对外部对象访问该对象的属性和行为进行限制)。
二、继承
继承是子类对象可以继承父类的属性和行为,即父类对象拥有的属性和行为,其子类对象也就拥有了这些属性和行为。
好处:1.提高了代码的复用性。
2.让类与类之间产生了关系,给第三个特征多态提供了前提。
java中只支持单继承,即一个子类只能有一个直接父类。
java支持多层继承。C继承B,B继承A,就会出现继承体系。
三、多态
多态,简单来说,就是一个对象对应着不同的类型。
多态在代码中的体现:父类或者接口的引用指向其子类的对象。
多态的前提:1.必须有关系,继承或者实现
2.要有覆盖。
多态的好处:提高了代码的扩展性,前期定义的代码可以被后期的内容所使用。
多态的弊端:前期定义的内容不能调用后期子类的特有内容。
Java中实现多态的机制:父类或者接口定义的引用变量可以指向子类或者具体实现类的实例对象,而程序调用的方法在后期绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。