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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王哲zhe 中级黑马   /  2015-8-14 22:02  /  480 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.继承:
    格式:class A extends B{}----------表示类A继承类B
    注意:子类可以直接访问父类中的非私有属性和方法。
2.继承的好处:
        A:提高了代码的复用性
        B:让类与类之间产生了一种关系,是多态的前提
3.继承的特点:
        A:Java只支持类的继承,不支持多继承。若支持多继承就会出现调用不明确的问题。
        B:Java支持多层继承
4.什么时候把类定义为继承呢?
        A:由于继承体现了一种关系,在定义类的时候,如果他们有 A is a B 的关系,他们之间就存在了继承的关系。
        B:发现有相同的方法的时候可以用继承(注意:不要为了获取某个功能而去使用继承)
5.子父类成员变量的关系:
        通过子类访问一个成员变量时先在局部范围找,再在成员范围找,最后在父类里面找。
6.如何在子类中输出局部范围值、成员范围值、父类范围值?
        局部范围:直接输出变量值
        成员变量:this.变量名
        父类变量:super.变量名
7.object类是所有类的父类,没有写继承的类系统默认是object的子类
8.super关键字:
        和this的用法很像,代表父类空间的标识(可以理解为父类对象的引用)。和this的最大区别在于:this是对象,super父类方法空间的标识
9.this和super的使用:
        成员变量:
                this.变量名--------当前变量
                super.变量---------父类的变量
        构造方法:用在构造方法中(构造方法不能被继承不能被重写)
                this(参数)--------本类其他构造方法的调用
                super(参数)-------父类的构造方法
        成员方法:
                this.方法名()--------本类的方法
                super.方法名()---------父类的方法
10.方法的重写:
        在继承中,子类出现与父类一模一样的方法时,会出现覆盖操作,成为方法的重写。
(**)面试题:方法重写与方法重载的区别?
        方法重写:
                用在子父类继承中,出现相同方法的情况下使用。返回值、方法名、参数都一样。
        方法重载:
                用在同一类中,方法名相同,参数列表不同,与返回值无关
11.方法重载中应该注意的问题:
        A:父类中的私有方法不可以被重写
        B:子类的访问权限一定要大于等于父类的访问权限。public 大于 默认
        C:静态的方法只能被静态方法重写(因为静态方法是随着类的加载而加载的),静态方法不能算对象的关系。
        D:覆盖应用:a.当子类需要父类功能但子类有自己特有的功能时,可以复写父类中的方法,这样既沿袭了父类的功能又定义了子类特有的内容;b.父类中的方法已经过时需要重新定义和扩展父类功能的时候可以重写。
        E:子类不能抛出比父类更大的异常。
12.子类的实例化过程:
        继承中的构造方法默认都去访问了父类的无参构造方法,即在子类构造方法的第一行有默认的super()语句。
        为什么呢?
                因为子类会自动具备父类中的非私有的数据,这些数据的初始化靠父类完成,就会先调用父类的构造方法对数据进行初始化
        注意:如=如果父类中没有无参构造方法怎么办?
                A:可以通过super(参数)去访问父类中的带参构造方法
                B:可以通过this(参数)去访问本类的其他构造方法(不推荐使用)
        思考:构造方法是否能重写?
                不能,因为构造方法与类重名,不能被重写。
13.类中代码的执行顺序:(面试题)
        静态代码块-------->构造代码块-------->构造方法
        总结:
        A:父类优先与子类执行
        B:静态优先于非静态
        C:构造代码优先于构造方法
        D:静态代码之执行一次
14.如果成员变量被私有了,在子类中如何使用?
        A:子类通过父类的set方法给成员变量赋值
        B:通过子类调用父类的带参构造方法调用super(a,b);
15.final关键字:它可以修饰类、成员变量、成员方法
        特点:
            A:final修饰的成员方法是不能被子类重写的
            B:final修饰的类是不能被继承的
            C:final修饰的成员变量其实是一个常量
                    常量:
                    字面值常量:
                    定义常量:和定义常量的格式一致,不过加了final修饰了,不能再被赋值
        注意:class Test{
                final static int[] ARR = {1,2,3,4,5}
                ARR[0] = 10;
                }----------------------这个是正确的

       

2 个回复

倒序浏览
总结的挺好,顶一个!!
回复 使用道具 举报
总结的很多啊,学习了.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马