黑马程序员技术交流社区

标题: 面向对象——多态抽象接口 [打印本页]

作者: 鲁枝权双元    时间: 2015-7-14 20:59
标题: 面向对象——多态抽象接口
        面向对象的多态
1.多态的概述:
        对象在不同时刻表现出来的不同状态---父类子对象
        针对引用对象:编译期间状态   运行期间状态
       
        多态的前提条件:
                继承关系或者实现关系(类与接口)
                方法重写
                父类(父接口)引用指向子类的对象
2.多态的成员特点:方法有重写 变量没有
        成员变量:
                编译看左边   运行看左边
       

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

3.多态的弊端与好处:
        弊端:父类的引用不能使用子类特有功能

        引用类型:向上转型(小到大)  向下转型(大到小)
                举例:Fu f=new  Zi();向上转型
                      Zi z=(Zi)f;向下转型
        类型转换的异常:classcastexception类型不匹配
                避免:向下转型只能转换成对象本类就是的类型或者父类型


        好处:为了提高代码的扩展性和可维护性
        开发原则:对扩展开放,对修改关闭

       
4.抽象类:
        针对只有方法声明,没有方法体的方法,java提供了一种表现形式就是抽象方法
        关键字:abstract修饰的类是抽象类,修饰方法就是抽象方法


        特点:
                关键字abstract修饰
                如果一个类中有抽象方法就是抽象类(或者接口),抽象类中不一定有抽象方法
                抽象类不能被实例化(抽象类的多态,通过子类对象进行实例化)
                子类继承父类,子类可以写成abstract,或者重写父类的所有抽象方法
                        ---强制要求子类做某些事情

5.抽象类的成员特点:
        成员变量:可以有成员变量也可以有常量
       
        构造方法:有构造方法    用于子类访问父类数据前非父类的数据进行初始化
       
        成员方法:可以有抽象方法也可以由非抽象方法
                抽象方法为了要求子类必须实现方法做某些事情
                非抽象方法为了提高代码的复用性,被子类继承

        抽象不能与private(不能被重写)  final(不能被继承) static(抽象方法调用没有意义)共存


6.接口:
        一个类中所有的方法都是抽象方法针对这种情况java就提供一个更加抽象的表现形式就是接口
        类与接口之间是实现关系implements
        接口的多态
        注意事项:接口并不是一个类它其实更像是一个规则的体现

        基本特点:
                接口不能被实例化
                接口中的方法(子类重写)(子类也是抽象类)
               
        成员特点:
                成员变量:接口中只有常量,默认修饰符public static final
                构造方法:没有构造方法(都是静态的不需要初始化随类的加载而加载)
                         任何类如果没有继承父类就是默认继承object
                        子类的super走的是object
                成员方法;接口中的方法都是抽象的
                        因为接口的成员方法有默认修饰符即public abstract


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


8.接口的思想特点:
        对外暴露规则
        程序的功能扩展
        降低耦合性
        多实现弥补了类的单继承的局限


9.接口与抽象类的区别:
        成员特点:
        关系特点:
        设计理念:
                抽象类被继承这个类中定义的是整个继承体现的共性内容
                接口的被实现这个接口中定义的是整个体现的扩展内容

10.案例的分析:
        分析:就是由具体到抽象


        实现:就是抽象到具体


        使用:使用具体的








































作者: 双元王志超    时间: 2015-7-14 21:05
恩,不错~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: zhwfa1991    时间: 2015-7-14 21:22
总结的不错
作者: longbao    时间: 2015-7-14 23:44
真心不错啊,得好好看看




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