A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 铿锵科技 于 2013-2-3 21:18 编辑

继承:
        特点:
                1,提高了代码的复用性。
                2,让类与类之间产生关系,是多态性的前提。

        Java中的继承。
                1,java只支持单继承,不支持多继承。为啥呢?答案:因为继承了多个父类如果有相同方法时,
                                                                                                子类对象不确定运行哪一个。
                2,Java还支持多层继承。A-->B--->C  原来可以形成继承体系。
                        想要使用体系功能,"查阅父类功能,建立子类对象调用功能。"
                        注解:父类的由来其实是由事物中的共性内容不断向上抽取而来的。
                                所以父类中定义的是该体系中的最基本,最共性功能。
        
        继承出现后,代码上也有一些特点:
        1,变量。
                当子父类中定义了相同的名称的成员变量,
                子类要使用父类中的同名变量时,需要使用关键字super来区分。
                一般不会出现这种情况,因为父类中有了,子类不需要定义。
                而且父类定义时,一般变量都私有化。

        2,函数。
                子类可以直接访问父类中非私有的成员函数。
                特殊情况:当子类中定义了与父类一模一样的方法时,会发生覆盖操作。大多指的是非静态方法。
                                  最终会运行子类的方法,父类相当于被覆盖了。
                                  函数的另一个特性:覆盖(重写,复写)。
                                  什么时候用啊?
                                  当父类的功能要被修改时,不建议修改源码。因为是灾难。
                                  只要通过一个类继承原有类,定义一个新的升级后的功能即可。
                                  但是功能是相同的,只是实现方法改变。这是子类可以沿袭父类中的功能定义,
                                  并重写功能内容。这就是覆盖。

                                  覆盖很爽,但是有注意事项:
                                  1,子类覆盖父类时,必须权限要大于等于父类权限。
                                  2,静态不能覆盖非静态。
                        
        3,构造函数。
                构造函数可以本类进行对象初始化,也可以给子类对象进行初始化。
                子类对象初始化过程:
                子类中的所有构造方法都会访问父类中空参数的构造函数,
                因为每一个构造函数的第一行,都有一句隐式的super语句。
                为什么要有这条语句?
                因为子类会获取到父类中的数据,必须要先明确父类对数据的初始化过程。
                当父类中没有空参数构造函数时,子类构造函数必须通过super句来明确要访问的父类中指定的构造函数。
                当时子类构造函数也可以通过this语句访问本类中的构造函数。
                但是子类中肯定,至少有一个构造函数会访问父类。

        
抽象类:其实就是在分析事物时,事物中的功能有些是不明确的内容的。这些不明确内容就是抽象的。
                可以通过抽象函数来描述。

                抽象函数一定要定义在抽象类中,因为,抽象函数所在类,也必须被抽象标识。

                写法特点:
                1,抽象函数只对函数进行声明,没有函数主体。
                2,抽象类和抽象函数都需要用abstract修饰。
                3,抽象类不可以进行实例化。
                4,想要使用抽象功能,必须通过子类覆盖了父类中所有的抽象方法后,才可以对子类实例化。
                        如果只覆盖了部分抽象方法,那么子类还是一个抽象类。

                也可以理解为:抽象类是一个父类,是不断向上抽取而来的,
                在抽取过程中,只抽取了方法声明,但没有抽取方法实现。

                抽象类和一半类差不多。
                区别:
                抽象类可以定义抽象方法。
                抽象类不可以建立对象。

                其实抽象类一样用于描述事物,既可以定义抽象方法,也可以定义非抽象方法。

评分

参与人数 1黑马币 +5 收起 理由
黄锦成 + 5

查看全部评分

2 个回复

倒序浏览
这样的总结太理论化,很空泛,意义不大。
回复 使用道具 举报
哈哈哈  挺好的  加油啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马