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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© mm2015 中级黑马   /  2015-12-13 23:07  /  1149 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、继承
        代码块:
                局部代码块 -- 限制变量生命周期
                构造代码块 -- 减少构造方法中的重复代码
                静态代码块 -- 随着类的加载就会执行,只执行一次。 -- 加载驱动(JDBC -- "贾琏预执事")
       
2、继承
        extends
       
        特点:
                单继承,不允许多继承,允许多重继承
               
                继承,不能继承父类的私有成员。
               
                this和super
                        this -- 代表本类对象的引用
                        super -- 理解父类对象的引用
                       
                        成员变量:-- 就近原则
                                this.变量名
                                super.变量名
                        构造方法:
                                this(参数...) 根据参数匹配调用本类的构造方法
                                super(参数...)根据参数匹配调用父类的构造方法
                                -- 保证父类的成员能先初始化
                        成员方法:
                                重写 -- 在子父类间,产生了方法声明完全一致的方法。
                                        -- 访问权限修饰符,子类要大于等于父类的。
                       
        final:
                修饰变量 -- 常量
                修饰类 -- 不能被继承String
                修饰方法 -- 不能被重写
                       
二、多态

1、多态概述
        多态:事物在不同时刻表现出来的不同状态。(父类子对象)
                Animal a = new Cat(); // 语法
        前提:
                要有继承(实现)关系。
                要有方法的重写(或者实现)。
                要有父类的引用指向子类的对象。
               
2、多态中成员变量的访问特点:
        编译看左边,运行也是看左边。 -- 成员变量没有重写的概念。
       
3、多态中成员方法的访问特点
        非静态
                编译看左边,运行看右边。 -- 成员方法存在着重写的概念。       
        静态:
                编译看左边,运行也是看左边。
               
4、多态中,父类引用指向子类对象。父类的引用不能使用子类特有的方法。
        解决:向上转型和向下转型。
        Animal a = new Cat(); // 隐含着一个向上转型。
        Cat c = (Cat) a; // 向下转型

5、多态的好处
        好处
                维护性
                扩展性
       
        弊端:
                父类的引用不能使用子类特有的属性或者行为。
                解决:向下转型。
                注意:类型转换异常 -- 向下转型只能转成对象本来就是的那个类型或者其父类型。
       
三、抽象类

        抽象方法 -- 只有方法声明,没有方法体。用abstract修饰。
        抽象类 -- 用abstract修饰。不允许实例化对象。
       
        特点:
                抽象类里面可以有抽象方法,还可以有非抽象的方法。还可以没有抽象方法。
                但有了抽象方法的类,必须声明成抽象的。
       
        一个类继承自抽象类:
                要么继续抽象
                要么就必须重写(实现)所有的抽象方法。
               
        抽象类的成员特点:
                成员变量:可以是变量,可以是常量。
                构造方法:有。 -- 子类访问父类成员之前,保证父类的数据初始化。
                成员方法:
                        可以抽象的 -- 强制子类必须做某些事情,相当于给子类定义了规则。
                        可以是非抽象的 -- 直接供子类继承,提高代码复用性。
                       
        抽象类里面可以没有抽象方法:
                为了不允许其他类创建对象。 -- 适配器模式
               
        abstract不能共存的关键字:
                final
                static
                private
               
四、接口
        java语言中,接口是用interface声明的。不是一个类。更象是一种规则的体现。
       
        类实现接口:
                class 类名 implements 接口名 {}
                要么全部实现接口中的抽象方法,
                要么继续抽象。
       
        接口也不能初始化对象。
       
        接口中的成员特点:
                成员变量:只能是常量。默认修饰符:public static final
                构造方法:没有。
                成员方法:只能是抽象方法。默认修饰符:public abstract
               
        重点题目:抽象类与接口的区别
                A:成员特点:
                        抽象类:
                                成员变量:
                                        可以是变量,可以是常量.
                                构造方法:
                                        有构造方法,用来对父类数据进行初始化.
                                成员方法:
                                        可以有抽象方法 -- 要求子类做某些事情
                                        可以有非抽象方法 -- 供子类继承.
                        接口:
                                成员变量:
                                        全部都是常量.默认修饰符: public static final
                                成员方法:
                                        全部都是抽象方法.默认修饰符: public abstract
                B:关系特点:
                        类与类:
                                继承关系,只能单继承,但是可以多层继承.
                        类与接口:
                                实现关系.可以单实现, 可以多实现.
                                还可以在继承一个类的同时实现多个接口. -- 接口的多实现弥补了类单继承的局限性。
                        接口与接口:
                                继承关系, 可以单继承也可以多继承.
                C:设计理念的区别:
                        抽象类定义的是系统的共性内容,体现的是 is a 的关系.
                        接口定义的是系统的扩展功能, 体现的是 like a 的关系.               
                       
                       
                       
                       
                       
                       
                       

1 个回复

倒序浏览
hyl 中级黑马 2015-12-14 19:49:29
沙发
赞一个。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马