黑马程序员技术交流社区

标题: 我理解的面向对象编程2 [打印本页]

作者: 王红杰    时间: 2018-8-28 14:16
标题: 我理解的面向对象编程2
       面向对象编程的三大特性中的继承性主要也是为了提高代码的复用性,虽然这样并不一定能提高代码的运行效率,但可以大大简化编写代码的工作量,并且使代码的结构更清晰易懂,增加代码的可读性。在Java继承关系中,有三个特点:1.单继承,这是为了防止如果有两个直接父类时成员方法和成员变量发生冲突;2.多级继承,这是为了模仿现实世界中事物的分类也是可以分为很多级的情况,进一步提高父类代码的复用性;3.可以有多个子类,这也是多态性的前提,父类中的某个方法可以被多个子类分别重写,以适应不同子类的需求,这样父类的一个方法就可以在多个子类中有不同的功能,就像在现实中某一物种的一个能力在不同个体中有不同的表现一样,使得编程更贴近现实。
       面向对象编程的三大特性中的多态性在前面讲继承性的时候说了一些,继承性是多态性的前提。在一个父类有多个子类的情况下,父类的某个方法在不同的子类中可以有不同的形式,这就是多态。要实现多态有几个前提:1.继承或是实现;2.子类中对父类方法的重写;3.父类的引用指向子类的对象。对于前两个比较好理解,而第三个需要稍微解释一下:在前面学习继承的时候有一句话是”子类就是一个父类”,也就是一个子类的对象可以当做是它的父类对象来看待,其编程中的格式就是父类的引用指向子类的对象,在实际的使用过程中,如果一个方法要求传入一个父类的参数,那么我们就可以传入一个子类的对象进去,体现多态的拓展性与便利性。
       类的本质是一种自定义的引用数据类型。我们知道数据类型分为两类:基本数据类型和引用数据类型。基本数据类型的变量内只能存放常量数据,而引用数据类型的变量内不仅可以存放多个成员变量和多个成员方法,这些成员变量也可以是引用数据类型,这样就可以大大增加Java数据结构的复杂性,这样就可以更灵活的编写代码以贴合现实规律,实现编程需求。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2