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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 双元王志超 中级黑马   /  2015-7-14 21:11  /  586 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1.多态:
        对象在不同时刻表现出来的不同状态。--------父类子对象。(水,水蒸气,冰)
   前提条件:
        1.要有继承或实现关系。
        2.要有方法的重写。
        3.要有父类引用指向子类对象。

2.多态间的成员特点(掌):方法有重写,而变量没有。

        A:成员变量:编译、运行都看左边。

        B:成员方法:编译看左边,运行看右边。

3.多态的弊端即解决方案:
        弊端:父类的引用不能使用子类特有的方法
        解决:强制类型转换
        多态     Fu  f  =  new Zi();--向上转型
                Zi z = (Zi)f;---向下转型

4.类型转换异常(掌):
        ClassCastException 当试图将对象强制转换成不是实例的子类时,出现转换异常。

---避免问题:
        向下转型只能转换成对象本来就是的类型或者父类型。

5.多态的好处(理解):
        为了提高代码的扩展性和可维护性。

开发原则:对扩展开放,对修改关闭。

6.抽象类和抽象方法(抽象都掌我):

抽象方法:只有方法声明,没有方法体,用absouct修饰。public abstract void animal();

抽象类:有抽象方法的类就是抽象类。

抽象类的基本特点:
        1.抽象类和抽象方法必须使用abstract关键字修饰
        2.有抽象方法的类一定是抽象类(或者接口),但是抽象类中可以没有抽象方法。
        3.抽象类不能被实例化。-----通过子类对象进行初始化(多态方法)。
        4.如果一个类继承抽象类,那么
                这个类要么本身是抽象类。
                要么这个类重写父类的所有抽象方法。
        在继承中,我们为什么有些时候,回旋者父类是抽象类?
                作用:强制要求子类必须完成某些功能。
最大特点:强制要求子类完成某些功能。

7.抽象类的成员特点:

        成员变量:可以有常量,可以有常量

        构造方法:有构造方法,
                既然不能被实例化,那么有构造方法有什么用?
                可以用于子类访问父类数据前,对父类数据进行初始化。

        成员方法:
                可以有抽象方法,也可以有非抽象方法。

                抽象方法是为了要求子类做某些事情。

                非抽象方法是为了提高代码复用性,被子类继承。

8.抽象关键字abstract不可以和那些关键字共存?
        1.final:因为被final修饰的类不能被继承,被final修饰的方法不能被重写。

        2.private:因为被private修饰的方法不能重写,但是abstract方法要求重写。

        3.static:因为一个方法要是同时被static 和abstract修饰,那么这个方法就可以类名.
        方法名 调用. 但是此方法是抽象的,调用也无意义,所以就导致static 和abstract不能共存.


9.接口:
        针对一个类中所有的方法都是抽象方法这种情况,java提供了一种技术,接口。
        定义:  interface  B {全部都是抽象方法}  ---- 接口不是类,更像是一个规则的体现(不继承自Object)
       
        类继承自类的格式:  class A extends  B
        类实现接口的格式:class A  implements
接口:是一种特殊的抽象类。比抽象类更抽象。因为它里面的方法都是抽象的。

接口的基本特点:
        1.接口不能被实例化。
        2.实接口中的方法:要么被子类重写,要么子类也是抽象的。

    接口方法都是静态的,随着类的加载而加载,所以没有构造方法。

接口的成员特点:
        成员变量:接口中只有常量。
                因为接口的成员变量有默认修饰符   public static final(推荐自己给出)
        构造方法:
                没有构造方法。
                任何类如果没有继承父类,那么这个类就继承自Object类
        成员方法:
                接口中的方法都是抽象的。
                接口中的成员方法有默认修饰符:public  abstract(推荐自己给出)
                                                                                                       
                                               


10.类与接口的关系(掌)

        类与类关系: 继承关系。只能单继承,或者多层继承。

        类与接口的关系:实现关系。可以单实现,也可以多实现。
                        并且还可以在继承一个类的同时,实现多个接口。

        接口与接口的关系:继承关系。可以单继承,也可以多继承。

        所有类都直接或者间接的继承自Object类,Object类是所有类的超类。

11.接口的思想特点(理解):
        接口是对外暴露的规则。
        程序的功能扩展
        降低耦合性
        多实现,弥补了java单继承


12.抽象类与接口的区别:

1)成员特点:
        抽象类:
                成员变量:可以是变量,也可以是常量。
                构造方法:有构造方法。
                成员方法:可以是抽象方法,也可以是非抽象方法。
        接口:
                成员变量:只能是常量。
                        默认修饰符:public static  final
                成员方法:只能是抽象方法
                        默认修饰符:public  abstract
2)关系特点
        类与类:
                继承关系,只能单继承,可以多继承。
        类与接口:
                实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时,实现多个接口。
        接口与接口:
                继承关系,可以单继承,可以多继承。

3)设计理念的区别:

        抽象类被继承,这个类中定义的是整个继承体现的共性内容。  体现  : is   a
       
        接口被实现,这个接口中定义的是整个体现的扩展内容。   体现:   like  a

1 个回复

倒序浏览
笔记做的不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马